Elixir Framework
Neutron for Elixir is a fault-tolerant backend framework built on OTP. Plug-based routing, Bandit HTTP server, and a full Nucleus client for all 14 data models.
Features
- OTP supervisors — Fault-tolerant process trees with automatic restart
- Plug + Bandit — Composable middleware on a lightweight HTTP server
- 14 data models — Full Nucleus client (SQL, KV, Vector, Graph, TimeSeries, and more)
- Real-time — Phoenix-style channels with presence tracking
- OpenAPI 3.1 — Auto-generated from route metadata
- RFC 7807 — Standardized error responses
Hello World
defmodule MyApp.Router do
use Neutron.Router
plug Neutron.Logger
plug Neutron.RequestID
plug Neutron.Recover
get "/" do
send_json(conn, 200, %{message: "Hello, Neutron!"})
end
get "/health" do
send_json(conn, 200, %{status: "ok"})
end
end
# application.ex
defmodule MyApp.Application do
use Application
def start(_type, _args) do
children = [
{Neutron.Nucleus.Pool, url: "postgres://localhost:5432/mydb", size: 10},
{Bandit, plug: MyApp.Router, port: 4000}
]
Supervisor.start_link(children, strategy: :one_for_one)
end
end
Module Overview
| Module | Purpose |
|--------|---------|
| Neutron.Router | Plug-based routing with macro DSL |
| Neutron.Nucleus | Connection pool and client for all 14 models |
| Neutron.Channels | WebSocket channels with topic routing |
| Neutron.Presence | Distributed presence tracking via CRDT |
| Neutron.Auth | JWT, sessions, API keys, RBAC |
| Neutron.Middleware | Logger, CORS, rate limit, request ID, recovery |
| Neutron.OpenAPI | Auto-generated OpenAPI 3.1 spec |
Why Elixir?
OTP supervision trees make Neutron Elixir ideal for real-time systems — chat, IoT dashboards, live collaboration. If a Nucleus connection drops, the supervisor restarts it. If a channel process crashes, clients reconnect automatically.