API Reference ex_esdb v#0.2.3

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.

Supervisor for cluster coordination components.

Provides tools for verifying consistency across ExESDB cluster stores.

Critical infrastructure supervisor that manages core ExESDB components.

Supervisor for event emission components.

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

@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.

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.

Supervisor for event notification and distribution components.

This module contains the options helper functions for ExESDB

Supervisor for persistence layer components.

The ExESDB Snapshots SubSystem.

Provides functions for reading snapshots

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 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.

Helper module for creating store-specific GenServer names.

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.

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.

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.

A module to calculate topic identifiers

Helper module for starting ExESDB with umbrella configuration patterns.