API Reference ex_esdb v#0.11.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: %{
Supervisor for cluster coordination components.
Provides tools for verifying consistency across ExESDB cluster stores.
Critical infrastructure supervisor that manages core ExESDB components.
Comprehensive debugging and inspection API for ExESDB systems.
Supervisor for the ExESDB Debugger system.
Logging worker responsible for handling EmitterPool logging events.
Supervisor for event emission components.
Logging worker responsible for handling EmitterSystem logging events.
As part of the ExESDB.System, the EmitterWorker is responsible for managing the communication between the Event Store and the PubSub mechanism.
Logging worker responsible for handling EmitterWorker logging events.
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
Event definitions and schemas for ExESDB subsystems.
@deprecated "Use ExESDB.GatewaySystem instead"
Supervisor for gateway components providing external interface.
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.
Inspects configuration settings for the ExESDB system.
Inspects processes related to the ExESDB system.
Inspects the supervision tree of the ExESDB system.
Supervisor for the Inspection subsystem.
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
LoggerWorker subscribes to events for a specific subsystem and logs events for monitoring and debugging.
Helper module for publishing structured logging events to the :ex_esdb_logging PubSub topic.
LoggingSystem supervisor that manages individual logging workers for different ExESDB components.
Provides metrics for the event store.
Performs comprehensive health checks on the ExESDB system.
Supervisor for the Monitoring subsystem.
Provides fast failure detection and cluster health monitoring to handle hard node crashes.
Supervisor for event notification and distribution components.
Collects various system metrics for observation and analysis.
Supervisor for the Observation subsystem.
Common utilities for ExESDB operational message creation and handling.
This module contains the options helper functions for ExESDB
Simplified ExESDB configuration module using automatic OTP app discovery.
Supervisor for persistence layer components.
A GenServer that handles periodic disk persistence operations.
Helper module for consistent pubsub integration across ExESDB modules.
Loads and validates scenario configurations from various sources.
Supervisor for the Scenario subsystem.
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.
GenServer responsible for coordinating Khepri cluster formation and preventing split-brain scenarios.
This module provides functions to get information about the EXESDB event store.
Supervisor for store-related components.
A GenServer wrapper around :khepri to act as a distributed event store. Inspired by EventStoreDB's API.
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_id.
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
Monitors the health of subscriptions and their associated emitter pools.
Centralized tracker for subscription health events received via :ex_esdb_system PubSub.
Provides functions for working with event store subscriptions.
Provides functions for working with event store subscriptions.
As part of the ExESDB.System, the SubscriptionsTracker is responsible for observing the subscriptions that are maintained in the Store.
Provides functions for working with event store subscriptions.
This module is the top level supervisor for the ExESDB system.
Telemetry GenServer for the ExESDB core package.
A module to calculate topic identifiers
Helper module for starting ExESDB with umbrella configuration patterns.