global-serial enforces a single global event-processing slot across all EventBus instances.
Note that the global lock is scoped to the EventBus class; if you need separate global lock domains, subclass EventBus.
Companion runnable example:
Lifecycle impact
- An emitted event is queued on its target bus as usual.
- Before handler execution starts, the bus acquires the shared global event lock.
- While one event is running anywhere, other buses wait.
- Handler-level concurrency still applies inside that one active event.
Execution order example
- Python
- TypeScript
- Go
- Rust
Notes
- This mode is strongest for determinism across distributed in-process bus topologies.
- Queue-jump behavior (
await event.now()inside handlers) still applies, but it does so under the same global lock.