evoq_event_type_registry (evoq v1.14.1)
View SourceEvent type registry for evoq.
Maintains a mapping of event types to interested handlers. Uses pg (process groups) for efficient pub/sub routing.
This is the key to per-event-type subscriptions: - Handlers register interest in specific event types - When events are published, only interested handlers receive them - Scales to millions of events without per-stream overhead
Summary
Functions
Get all registered event types.
Get all handlers registered for an event type. Returns both pids (from pg) and modules (from internal state).
Register a handler pid for an event type. Notifies any registered store subscription listeners when a previously unseen event type gets its first handler.
Register a handler module for an event type (legacy API).
Register a store subscription listener.
Start the event type registry.
Unregister a handler pid from an event type.
Unregister a handler module from an event type (legacy API).
Unregister a store subscription listener.
Functions
-spec get_all_event_types() -> [binary()].
Get all registered event types.
Get all handlers registered for an event type. Returns both pids (from pg) and modules (from internal state).
Register a handler pid for an event type. Notifies any registered store subscription listeners when a previously unseen event type gets its first handler.
Register a handler module for an event type (legacy API).
Register a store subscription listener.
Atomically returns the current list of event types AND subscribes the listener for future type registration notifications. This is race-free: no register/2 call can execute between returning the current types and subscribing for notifications, because both happen in the same gen_server call.
The listener receives {new_event_type, EventType :: binary()} messages when a previously unseen event type gets its first handler.
Start the event type registry.
Unregister a handler pid from an event type.
Unregister a handler module from an event type (legacy API).
-spec unregister_listener(pid()) -> ok.
Unregister a store subscription listener.