Epic: Consolidate dual ImmuDB event store implementations #18

Open
opened 2026-03-14 23:53:08 +00:00 by freemo · 0 comments
Owner

Background

Two separate ImmuDB event store implementations exist: one in core/event_sourcing/ using Marshal serialization, another in event_sourcing/ using JSON/Oj with Prometheus metrics. They use different key schemas, serialization formats, and configuration systems. Only the core version is wired in; the alt version is never referenced.

Demonstrable Outcome

A single, canonical ImmuDB event store at core/event_sourcing/immudb_event_store.rb using JSON serialization, Prometheus metrics, optimistic locking, and ServerConfig for configuration. The duplicate lib/aethyr/event_sourcing/ directory is removed.

Acceptance Criteria

  • Single event store implementation with JSON serialization and Prometheus metrics
  • lib/aethyr/event_sourcing/ directory removed (configuration.rb and immudb_event_store.rb)
  • All configuration reads from ServerConfig
  • Unit tests cover the consolidated event store
## Background Two separate ImmuDB event store implementations exist: one in `core/event_sourcing/` using Marshal serialization, another in `event_sourcing/` using JSON/Oj with Prometheus metrics. They use different key schemas, serialization formats, and configuration systems. Only the core version is wired in; the alt version is never referenced. ## Demonstrable Outcome A single, canonical ImmuDB event store at `core/event_sourcing/immudb_event_store.rb` using JSON serialization, Prometheus metrics, optimistic locking, and `ServerConfig` for configuration. The duplicate `lib/aethyr/event_sourcing/` directory is removed. ## Acceptance Criteria - [ ] Single event store implementation with JSON serialization and Prometheus metrics - [ ] `lib/aethyr/event_sourcing/` directory removed (configuration.rb and immudb_event_store.rb) - [ ] All configuration reads from `ServerConfig` - [ ] Unit tests cover the consolidated event store
freemo self-assigned this 2026-03-15 04:25:21 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: aethyr/Aethyr#18
No description provided.