Command Context Consistency
Commands declare the event subset they depend on with JSON criteria, then save only if that context is still current.
Orisun stores events transactionally, checks consistency by querying event content, and delivers catch-up plus live updates through embedded NATS JetStream without asking teams to assemble a broker, publisher, and event log by hand.
PostgreSQL or SQLite is the durable source of truth. Embedded JetStream is the delivery layer. Your application keeps business decisions in application code.
Commands declare the event subset they depend on with JSON criteria, then save only if that context is still current.
Publisher checkpoints live in PostgreSQL or SQLite. Wake-up signals can be missed; committed events still drain sequentially.
Event storage, indexed reads, auth, the gRPC and Admin APIs, embedded NATS JetStream, and telemetry ship in a single binary.
Orisun is for systems where commands need to read event history, make a business decision, commit exactly the events for that decision, and publish the committed log in order.
Link Orisun into a Go service when event storage should live inside the same process and deployment unit.
Run Orisun as a small gRPC service when multiple applications or languages need the same event API.
Build read models from catch-up subscriptions that recover from downtime without depending only on broker retention.
SQLite is complete for single-node systems. PostgreSQL adds multi-node Orisun coordination and database-managed operations without changing client code.
Single-node production, embedded apps, local development, and low-ops services.
Multi-node Orisun deployments backed by database-managed storage and operational tooling.
Orisun keeps storage, consistency checks, publishing, and subscriber recovery on one ordered path so application code can focus on domain decisions.
Select the event subset your command depends on with JSON criteria.
Commit only if the selected context is still at the expected position.
Drain committed events from durable checkpoints into embedded JetStream.
Catch up from storage, then consume live events with idempotent checkpoints.
The docs are organized around the work teams actually do: start a server, model a consistency boundary, integrate the API, embed Orisun, and operate it.
Understand where Orisun fits and which path to take.
Getting StartedRun SQLite or PostgreSQL as a binary, container, or embedded store.
TutorialBuild a ledger with CCC, indexes, and a live projector.
Model business invariants over event-content queries.
Delivery guaranteesSee how checkpoints preserve ordered publishing.
Storage backendsChoose the right backend for your deployment shape.
Save, query, subscribe, and manage indexes over gRPC.
Go embeddingRun Orisun inside a Go service with one backend package.
OperationsDeploy binaries or containers, then configure auth, TLS, storage, and telemetry.