EventBus is the central runtime for handler registration, event emit, history lookup, and lifecycle control.
EventBus(...)
- Python
- TypeScript
Shared configuration semantics
| Option | Description |
|---|---|
name | Human-readable bus name used in logs/labels. |
event_concurrency | Event scheduling policy across queue processing (global-serial, bus-serial, parallel). |
event_handler_concurrency | How handlers for one event execute (serial vs parallel). |
event_handler_completion | Completion mode (all waits for all handlers, first resolves on first successful result). |
event_timeout | Default outer timeout budget for event/handler execution. |
event_slow_timeout | Slow-event warning threshold. |
event_handler_slow_timeout | Slow-handler warning threshold. |
event_handler_detect_file_paths | Whether to capture source path metadata for handlers. |
max_history_size | Maximum retained history (null = unbounded, 0 = keep only in-flight). |
max_history_drop | If true, drop oldest history entries when full; if false, reject new emits at limit. |
Runtime state
Both implementations expose equivalent runtime state:- Bus identity:
id,name,label - Registered handlers and indexes
- Event history and pending queue
- In-flight tracking
- Locking/concurrency runtime objects
on(...)
Registers a handler for an event key (EventClass, event type string, or '*').
- Python
- TypeScript
off(...)
Unregisters handlers by event key, handler function/reference, or handler id.
- Python
- TypeScript
emit(...)
emit(...) enqueues synchronously and returns the pending event immediately.
- Python
- TypeScript
find(...)
find(...) supports history lookup, optional future waiting, predicate filtering, and parent/child scoping.
- Python
- TypeScript
Lifecycle helpers
Wait for idle
- Python
- TypeScript
Parent/child relationship checks
- Python
- TypeScript
Serialization and teardown
- Python
- TypeScript
Timeout and precedence
Shared precedence model:- Handler override
- Event override
- Bus default