Architecture Overview
Atomo is a Content Core: a schema-driven, event-sourced platform.
- Core: Rust workspace in
crates/— high performance, type-safe. - Server:
atomo_server(Axum + async-graphql) with subscriptions. - CLI:
atomo_cliorchestrates codegen, dev runtime, build, deploy. - Schema:
atomo_schemaparsesschema.ts(SWC) and generates code. - Projectors:
atomo_projectorsbuild read models from the event log. - Realtime:
atomo_realtimeis a transport-agnostic, in-memory hub for the ephemeral, high-frequency tier (channels, presence, fan-out);atomo_servermounts its WebSocket transport at/realtime/ws. It never touches the event store — only durable outcomes flow back through the normal command path. - Control plane:
atomo_control_planeruns many isolated projects on shared infrastructure — a per-project database +atomo-serverinstance, managed by a registry, provisioner, and gateway. Purely additive: it sits in front of unmodified servers. See Multi-Project Platform. - Metered commands:
atomo_server::metered— generic primitives (expiring single-use token store, integer-unit budget ledger) that compose transactionally withatomo_server::jobs(JobStore::enqueue_tx) so a consumer's metered command commits or rolls back as one unit. No business policy; library-only. See Metered Command Primitives.
Pillars (from Atomo About & Paper):
- River of Events: all changes are immutable events (audit/time travel).
- Flowing Canvas: rich content blocks and flexible composition.
- Energy Hub: open integrations via events and external workers.
Data flows: schema.ts → codegen → GraphQL API + Admin UI + SDK types.