Skip to main content

actionqueue_budget/
lib.rs

1#![forbid(unsafe_code)]
2//! Budget enforcement and event subscription primitives for ActionQueue.
3//!
4//! This crate provides the in-memory budget tracking and event subscription
5//! matching logic that Caelum uses for Cognitive Thread budget enforcement,
6//! preemptibility, and reactive coordination.
7//!
8//! # Architecture
9//!
10//! The `actionqueue-budget` crate is intentionally small: it provides pure
11//! in-memory data structures reconstructed from WAL-sourced events. All
12//! durability is handled by `actionqueue-storage`; this crate depends only on
13//! `actionqueue-core` for domain types.
14//!
15//! # Components
16//!
17//! - [`tracker::BudgetTracker`] — per-task budget state (allocations, consumption)
18//! - [`gate::BudgetGate`] — pre-dispatch eligibility check
19//! - [`subscription::registry::SubscriptionRegistry`] — active subscription state
20//! - [`subscription::matcher::check_event`] — event-to-subscription matching
21
22pub mod gate;
23pub mod subscription;
24pub mod tracker;
25
26pub use actionqueue_core::event::{check_event, ActionQueueEvent, SubscriptionSource};
27pub use gate::BudgetGate;
28pub use subscription::registry::SubscriptionRegistry;
29pub use tracker::{BudgetState, BudgetTracker, ConsumeResult};