Skip to main content
EventBusMiddleware defines the middleware hook contract used by EventBus in both runtimes. Rust core event dispatch does not expose a public middleware trait yet. Use handler wrappers or inspect EventBus::to_json_value() / event result state directly until Rust middleware parity lands.

Interface

Setup with EventBus

Lifecycle behavior

  • on_event_change / onEventChange runs on event lifecycle transitions.
  • on_event_result_change / onEventResultChange runs on handler-result lifecycle transitions.
  • on_bus_handlers_change / onBusHandlersChange runs when handlers are added/removed.
  • Hook status values are only pending, started, and completed.
  • Handler failures are represented on event_result.status == 'error' and event_result.error when the hook status is completed.

Custom middleware example

Built-in implementations

  • OtelTracingMiddleware
  • AutoErrorEventMiddleware
  • AutoReturnEventMiddleware
  • AutoHandlerChangeEventMiddleware
  • WALEventBusMiddleware
  • LoggerEventBusMiddleware
  • SQLiteHistoryMirrorMiddleware