1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! Event streaming and observability for oxidizedgraph
//!
//! This module provides a publish-subscribe event system for monitoring
//! graph execution, implementing hooks, and building observability.
//!
//! # Event Types
//!
//! - `GraphStarted` / `GraphCompleted` - Graph lifecycle
//! - `NodeEntered` / `NodeExited` - Node execution boundaries
//! - `NodeError` - Node execution failures
//! - `CheckpointSaved` - Checkpoint persistence
//! - `StateUpdated` - State mutations
//!
//! # Example
//!
//! ```rust,ignore
//! use oxidizedgraph::events::{EventBus, Event, EventHandler};
//!
//! // Create event bus
//! let bus = EventBus::new();
//!
//! // Subscribe to events
//! bus.subscribe(|event: &Event| {
//! println!("Event: {:?}", event);
//! });
//!
//! // Use with streaming runner
//! let runner = StreamingRunner::new(graph, bus.clone());
//! ```
pub use ;
pub use ;
pub use ;
pub use ;
use Arc;
/// Create a new event bus with default configuration
/// Create an event bus with a custom channel capacity