ores.eventing

Table of Contents

1. Diagram

ores.eventing component diagram

Figure 1: ores.eventing

2. Summary

ores.eventing provides an in-process publish/subscribe event bus for decoupled communication between ORE Studio components. It defines type-safe event traits, RAII subscription handles, and entity-change events. A PostgreSQL LISTEN/NOTIFY bridge (postgres_event_source) translates database notifications into typed in-process events, enabling services to react to cross-service state changes without polling.

3. Inputs

  • Published domain events from any component calling event_bus::publish.
  • PostgreSQL NOTIFY payloads forwarded by postgres_event_source.

4. Outputs

  • Type-safe callbacks delivered to registered subscribers.
  • RAII subscription handles that unsubscribe on destruction.

5. Entry points

  • include/ores.eventing/domain/ — event types, traits, entity change events.
  • include/ores.eventing/service/ — event_bus, postgres_event_source.

6. Dependencies

  • ores.database — postgres_listener_service for LISTEN/NOTIFY.
  • ores.logging — structured logging.

7. See also

Emacs 29.3 (Org mode 9.6.15)