Skip to main content

ServiceLeadershipGuard

Trait ServiceLeadershipGuard 

Source
pub trait ServiceLeadershipGuard: Send + Sync {
    // Required methods
    fn current_service_lease(
        &self,
        service_id: &ServiceId,
    ) -> Option<ServiceLeaderLease>;
    fn check_service_write_permission(
        &self,
        service_id: &ServiceId,
        tenant_id: &TenantId,
        cluster_id: &ClusterId,
        core_id: &CoreId,
        min_epoch: Option<u64>,
        now_ms: u64,
    ) -> LeadershipDecision;
}
Expand description

Checks leadership for an independently coordinated service.

Required Methods§

Source

fn current_service_lease( &self, service_id: &ServiceId, ) -> Option<ServiceLeaderLease>

Returns the current lease for service_id, when one is known.

Source

fn check_service_write_permission( &self, service_id: &ServiceId, tenant_id: &TenantId, cluster_id: &ClusterId, core_id: &CoreId, min_epoch: Option<u64>, now_ms: u64, ) -> LeadershipDecision

Checks whether core_id may write for service_id at now_ms.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§