ClusterNode

Trait ClusterNode 

Source
pub trait ClusterNode:
    MessagePassing
    + Send
    + Sync {
    // Required methods
    fn node_id(&self) -> &NodeId;
    fn cluster_nodes(&self) -> BoxFuture<'_, Result<Vec<NodeId>>>;
    fn is_coordinator(&self) -> bool;
    fn health_status(&self) -> BoxFuture<'_, Result<NodeHealth>>;
    fn resources(&self) -> BoxFuture<'_, Result<NodeResources>>;
    fn join_cluster(&mut self, coordinator: NodeId) -> BoxFuture<'_, Result<()>>;
    fn leave_cluster(&mut self) -> BoxFuture<'_, Result<()>>;
    fn handle_node_failure(
        &mut self,
        failed_node: NodeId,
    ) -> BoxFuture<'_, Result<()>>;
}
Expand description

Cluster node abstraction for distributed computing

Required Methods§

Source

fn node_id(&self) -> &NodeId

Get the unique identifier for this node

Source

fn cluster_nodes(&self) -> BoxFuture<'_, Result<Vec<NodeId>>>

Get the current cluster membership

Source

fn is_coordinator(&self) -> bool

Check if this node is the cluster coordinator

Source

fn health_status(&self) -> BoxFuture<'_, Result<NodeHealth>>

Get current node health status

Source

fn resources(&self) -> BoxFuture<'_, Result<NodeResources>>

Get node computational resources

Source

fn join_cluster(&mut self, coordinator: NodeId) -> BoxFuture<'_, Result<()>>

Join a cluster

Source

fn leave_cluster(&mut self) -> BoxFuture<'_, Result<()>>

Leave the current cluster

Source

fn handle_node_failure( &mut self, failed_node: NodeId, ) -> BoxFuture<'_, Result<()>>

Handle node failure detection

Implementors§