Chronacta — self-hosted event store for Event Sourcing

An event store for systems built with Event Sourcing

In a CRUD model, applications usually store an object’s current state and update it as things change. With Event Sourcing, meaningful domain changes are appended as events, and state is derived from their sequence. Chronacta is a self-hosted server for storing, reading, and delivering those events.

APPLICATIONPlaceOrdercommand · order-42appendCHRONACTA · EVENT STOREstream orders-42v1OrderPlacedv2ItemAddedv3PaymentAuthv4OrderShippedprojectREAD MODELorders_list · rebuildable

What Chronacta provides

01

Keep the event sequence as the source of truth

Store domain events in ordered streams with versions. The application decides which business facts matter; Chronacta preserves their sequence.

02

Derive read models from the same events

Build projections for queries, reports, and APIs. When a projection changes, rebuild it from the event history.

03

Protect concurrent writes

Append with an expected stream version. If another writer has changed the stream, the append is rejected instead of silently replacing newer state.

04

Run it in your infrastructure

Chronacta is self-hosted. Run the server and keep event data under your infrastructure and access controls.

What Chronacta is

Chronacta is a self-hosted event store for Event Sourcing. It stores immutable events in ordered, versioned streams and provides APIs for appending, reading, subscriptions, projections, and administration. Your application owns commands, domain rules, and decisions; Chronacta stores and delivers the event history.

Append with a version check

Use an expected stream version to detect concurrent writes and handle conflicts explicitly.

Read and subscribe

Read an individual stream or the global event log. Durable subscriptions resume from a saved position after a consumer restarts.

Build and rebuild projections

Derive query-oriented read models from events. Rebuild a projection when its logic changes.

Operate in your environment

Free provides a single-node server. Enterprise adds high availability, security integrations, and operational tooling for multi-node deployments.

When Event Sourcing fits

Event Sourcing is useful when a system must retain the sequence of domain changes—not just the current state. It is often used with DDD for domains such as orders, payments, accounts, and workflows, where decisions and transitions matter.

Orders and fulfillment

Represent order changes as domain events: order placed, item added, payment authorized, shipment sent.

Finance and risk

Derive balances and records from stored facts, and inspect the sequence of decisions that produced them.

Support and operations

Inspect the events that led to an object’s current state instead of relying on a single last-updated value.

Changing query needs

Build a new projection or read model from the same event history without changing the original events.

From a command to a queryable view

A customer places an order. The application handles the command, checks its domain rules, and appends events such as OrderPlaced and PaymentAuthorized to the order’s stream. Chronacta stores them in order. A projection can consume those events to build a read model for an order list, support console, or report. If the read model needs to change, rebuild the projection from the stored events.

Command
Domain decision
Domain event
Event store
Projection
A command reaches the application → the application applies domain rules and produces events → Chronacta appends them to a stream → projections build read models for queries.

The application owns the domain decisions. Chronacta provides the event store: a durable, ordered record that the application can read, subscribe to, and use to rebuild projections.

Start with one workflow

Try Event Sourcing where retaining and using the sequence of domain changes solves a concrete problem.

  1. 1. Choose an aggregate

    Pick a domain object or workflow whose state changes need to be checked, explained, or reconstructed.

  2. 2. Run Chronacta Free

    Start the single-node server, append and read events, and test expected-version conflicts.

  3. 3. Add a projection or consumer

    Build a read model for queries, or use a durable subscription when a separate process must resume after restart.

  4. 4. Grow operationally when needed

    Use Free while one node fits your requirements. Evaluate Enterprise when you need high availability, security integrations, or multi-node operations.