//! Node federation: trusted multi-node clusters with state sync. //! //! Nodes federate by exchanging invite codes containing DID + onion address. //! Trust is bilateral — both sides must agree. Federated nodes periodically //! sync container status, health metrics, and availability. mod invites; pub mod pending; mod storage; mod sync; mod types; // Re-export all public items so `crate::federation::*` continues to work. pub use invites::{accept_invite, create_invite}; // Crate-internal: used by the periodic federation auto-sync to re-assert // membership to peers that don't list us back (asymmetry self-heal). pub(crate) use invites::notify_join; #[allow(unused_imports)] pub use storage::{ add_node, fips_npub_for_onion, load_nodes, load_removed_dids, record_peer_transport, remove_node, save_nodes, set_trust_level, update_node, }; pub use sync::{build_local_state, deploy_to_peer, sync_with_peer, sync_with_peer_by_did}; pub use types::{AppStatus, FederatedNode, NodeStateSnapshot, TrustLevel};