ExESDB.CoreSystem (ex_esdb v0.1.5)

Critical infrastructure supervisor that manages core ExESDB components.

This supervisor uses :one_for_all strategy because these components are tightly coupled and must restart together to maintain consistency.

Startup order:

  1. PersistenceSystem: Manages streams, snapshots, and subscriptions (foundation)
  2. NotificationSystem: Manages leadership and event emission (depends on persistence)
  3. StoreSystem: Manages store lifecycle and clustering (depends on persistence & notification)

The NotificationSystem includes:

  • LeaderSystem: Leadership responsibilities and subscription management
  • EmitterSystem: Event emission and distribution

This ensures that leadership and event distribution are core capabilities available in both single-node and cluster modes.

Summary

Functions

Returns a specification to start this module under a supervisor.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts)