Modules
CQRS/ES toolkit for Elixir.
Behaviour for functional event-sourced aggregates.
The imperative shell for functional aggregates.
Behaviour and struct builder for CQRS commands.
Wraps a command with dispatch context: routing, retries, and lifecycle tracking.
Macro for defining command handlers with automatic subscription and ack/nack.
Snap.Auth implementation for Elasticsearch/OpenSearch API key authentication.
Canonical facet structs shared by the Orkestra.ES subsystem.
A facet attribute: a code/name pair owning an ordered list of
Orkestra.ES.Facet.Value structs.
A single facet value belonging to an Orkestra.ES.Facet.Attribute.
Elasticsearch/OpenSearch index lifecycle utilities.
A page of results returned by Orkestra.ES.Repository's get_paged/1.
Pure builder and response parser behind Orkestra.ES.Repository.get_paged/1.
Pipe-based DSL for composing Elasticsearch bool queries.
Generates a CRUD/read repository for an Orkestra.ES.Schema.
Declarative, Ecto-like schema DSL for Elasticsearch/OpenSearch read models.
Converts between an Orkestra.ES.Schema struct and its Elasticsearch
document representation.
Compile-time validation for Orkestra.ES.Schema.
Builds the full Elasticsearch index mapping for an Orkestra.ES.Schema.
Behaviour and struct builder for domain events.
Wraps a domain event with dispatch and delivery context.
Macro for defining event handlers with automatic subscription and ack/nack.
Behaviour for event persistence with optimistic concurrency.
EventStoreDB adapter via Spear gRPC client.
In-memory EventStore adapter backed by an Agent. For tests and local development without EventStoreDB.
Snapshot support for aggregates.
Behaviour for dispatching commands and publishing events.
Behaviour for command and event handlers.
In-process MessageBus implementation using Phoenix.PubSub.
Distributed MessageBus implementation using RabbitMQ.
Metadata carried by every command and event envelope.
Ecto schema for persisting a projector's position and halt status.
Ecto schema for persisting parked (dead-lettered) events (ERR-02).
Creates and drops Orkestra's internal projection tables.
Behaviour for pluggable read-model storage adapters.
Elasticsearch/OpenSearch storage adapter implementing Orkestra.Projection.Storage.
PostgreSQL storage adapter implementing Orkestra.Projection.Storage.
Supervisor for Orkestra projectors.
DSL macro for defining Orkestra projectors.
Runtime GenServer for Orkestra projection subsystem.
Pure functions for projector error classification and retry decisions.
OpenTelemetry tracing and structured logging helpers for Orkestra.
Mix Tasks
Reconciles the Elasticsearch alias of every configured Orkestra.ES.Schema
with its current mapping. Missing aliases are created; drifted aliases are
reindexed zero-downtime via Snap.Indexes.hotswap/5; in-sync aliases are
left untouched.
Sets up the Elasticsearch alias + versioned index for every configured
Orkestra.ES.Schema (idempotent — existing aliases are left untouched).
Prints a read-only status table for every configured Orkestra.ES.Schema,
reporting whether each alias exists and whether its deployed mapping has
drifted from the current schema definition. Makes no changes.
Rolls back all migrations for the named projection and deletes its checkpoint and dead-letter rows.
Rebuilds an Elasticsearch projection by creating a new versioned index, replaying all events, atomically swapping the alias, and cleaning up the old index — without any search downtime.
Runs all pending migrations for the named projection.
Rebuilds a projection by stopping its GenServer, rolling back and re-running all migrations, resetting the checkpoint, and restarting the GenServer. The projector then replays the full event stream from position 0, transitioning to live automatically once caught up.
Rolls back migrations for the named projection.