API Reference ex_esdb v#0.1.0
Modules
ExESDB is a wrapper around the khepri library. Its intention is to provide an interface to khepri, with a focus on event sourcing.
Aggregates events from an event stream using tagged rules: GIVEN: an Event of roughly this format: %{
This module is used to start the ExESDB system.
GenServer responsible for coordinating Khepri cluster formation and preventing split-brain scenarios.
Supervisor for cluster coordination components.
Configuration validation and normalization for ExESDB.
As part of the ExESDB.System,
As part of the ExESDB.System, the EmitterWorker is responsible for managing the communication between the Event Store and the PubSub mechanism.
As part of the ExESDB.System, ExESDB.Emitters is responsible for managing the lifetime of the Emitter processes.
This module contains the environment variables that are used by ExESDB
This module contains the event projector functionality
The GatewaySupervisor is responsible for starting and supervising the GatewayWorkers.
GatewayWorker processes are started on each node in the cluster, and contain the implementation functions for the Gater.API.
Provides functions for distributing load over the cluster.
This module supervises the Leader Subsystem.
As part of the ExESDB.System, the SubscriptionsTracker is responsible for observing the subscriptions that are maintained in the Store.
This module contains the leader's reponsibilities for the cluster.
Custom logger filters to reduce noise from Ra, Khepri, and other verbose components
Provides metrics for the event store.
Provides fast failure detection and cluster health monitoring to handle hard node crashes.
This module contains the options helper functions for ExESDB
The ExESDB Snapshots SubSystem.
Provides functions for reading snapshots
A pool of ExESDB.SnapshotsReaderWorker
processes.
A worker process for reading snapshots from the event store.
The API for interacting with ExESDB Snapshots Writers. It functions as an API for SnapshotsWriterWorkers, by requesting a worker from the Cluster. If no worker is available for the specific combination of store, source_uuid, and stream_uuid, then a new worker is started.
A pool of ExESDB.SnapshotsWriterWorker
processes.
A worker process for writing snapshots to the event store.
A GenServer wrapper around :khepri to act as a distributed event store. Inspired by EventStoreDB's API.
This module provides functions to get information about the EXESDB event store.
Manages multiple event stores dynamically within a single ExESDB cluster.
The ExESDB Streams SubSystem.
Provides helper functions for working with event store streams.
This module is responsible for reading events from a stream.
As part of the ExESDB.System,
Provides functions for reading and streaming events from the event store.
This module is responsible for writing events to a stream. It is actually an API style wrapper around the StreamsWriterWorker.
As part of the ExESDB.System,
Provides functions for writing streams
Provides functions for working with event store subscriptions.
Provides functions for working with event store subscriptions.
Provides functions for working with event store subscriptions.
This module is the top level supervisor for the ExESDB system. It is responsible for supervising
A module to calculate topic identifiers