Skip to main content

ursula_control/
lib.rs

1//! Control-plane state for Ursula dynamic node registration, group placement,
2//! and manual group migration.
3//!
4//! The crate is intentionally pure data plus deterministic state transitions:
5//! no I/O, no async, and no wall-clock reads.
6
7mod command;
8mod model;
9mod state;
10mod view;
11
12pub use command::ControlCommand;
13pub use command::ControlResponse;
14pub use model::ClusterNode;
15pub use model::DataGroupPlacement;
16pub use model::GroupMigration;
17pub use model::LearnerStatus;
18pub use model::MetaConfig;
19pub use model::MigrationPhase;
20pub use model::NodeId;
21pub use model::NodeState;
22pub use state::ControlPlaneState;
23pub use view::GroupPlacementView;
24pub use view::PlacementNode;
25
26#[cfg(test)]
27mod tests;