# Elixir Server Core v0.1.1 - Table of Contents

A minimal, forkable Elixir server with HTTP routing, background job queueing, and pluggable persistence.

## Pages

- [Elixir Server Core](readme.md)
- [Forking Guide](forking.md)
- [ElixirServerCore HTTP API Curl Tests](endpoint_test.md)

## Modules

- [Core.JobStore](Core.JobStore.md): Behaviour for persisting job state across VM restarts.
- [Core.JobStore.Memory](Core.JobStore.Memory.md): Default no-op store. Assigns VM-local monotonic IDs but does not persist.
Jobs are lost on VM restart.
- [Core.JobStore.SQL](Core.JobStore.SQL.md): Pure helper functions for building standard job-store SQL.
- [Core.JobStore.SQLite](Core.JobStore.SQLite.md): SQLite-backed job store with WAL mode enabled.
- [ElixirServerCore.Application](ElixirServerCore.Application.md): Main application supervisor. Configurable via `Application.get_env(:elixir_server_core, ...)`.

- HTTP Layer
  - [Core.HTTP.BaseRouter](Core.HTTP.BaseRouter.md): Composable macros for building custom routers on top of Elixir Server Core.
  - [Core.HTTP.Router](Core.HTTP.Router.md): Default router implementation.
This is used by the demo application.

- Job System
  - [Core.Workers.Job](Core.Workers.Job.md): Immutable job record that flows through the queue lifecycle.
  - [Core.Workers.JobQueue](Core.Workers.JobQueue.md)
  - [Core.Workers.Worker](Core.Workers.Worker.md): Background job worker. Polls the JobQueue every `@poll_interval` ms,
claims the next available job, executes it, and updates its status.
  - [Core.Workers.WorkerPool](Core.Workers.WorkerPool.md): Supervisor that manages a pool of concurrent workers.

- Capabilities
  - [Core.Capability.HTTP](Core.Capability.HTTP.md): HTTP server capability with a configurable router module.
  - [Core.Capability.WorkQueue](Core.Capability.WorkQueue.md): Work queue capability with configurable worker module.

  - [Core.ServerTemplate](Core.ServerTemplate.md): Minimal supervision template. Copy this as your Application module
when forking the server. Swap router and worker_module for your own.

- Telemetry
  - [Core.Capability.Metrics](Core.Capability.Metrics.md)
  - [Core.Telemetry.Events](Core.Telemetry.Events.md): Telemetry event name constants and emit helpers for Elixir Server Core.
  - [Core.Telemetry.Metrics](Core.Telemetry.Metrics.md)

