ElectionConfig

Struct ElectionConfig 

Source
pub struct ElectionConfig {
    pub lease_duration: Duration,
    pub heartbeat_interval: Duration,
    pub candidate_timeout: Duration,
    pub election_enabled: bool,
    pub allow_preemption: bool,
}
Expand description

Global configuration for the leader election system

Controls the behavior of the election system including lease duration, timeouts, and preemption policy.

Fields§

§lease_duration: Duration

How long a leadership lease lasts

Leader must refresh before this expires to maintain leadership. Longer values reduce election traffic but slow failover.

§heartbeat_interval: Duration

Recommended heartbeat interval

Candidates and leaders should send heartbeats at this interval. Typically lease_duration / 3 to ensure timely refresh.

§candidate_timeout: Duration

How long before a candidate is considered dead

Candidates that haven’t sent a heartbeat within this duration may be evicted from the candidate list.

§election_enabled: bool

Master switch to enable/disable elections

When disabled:

  • No new leaders can be elected
  • Existing leader remains until lease expires
  • Registration and heartbeats return errors
§allow_preemption: bool

Whether higher priority processes can preempt current leader

If true, a candidate with higher priority can take over leadership even if the current leader’s lease is valid. If false, must wait for lease to expire.

Implementations§

Source§

impl ElectionConfig

Source

pub fn with_lease_duration(lease_duration: Duration) -> Self

Create a new ElectionConfig with custom lease duration

Other values are derived from the lease duration:

  • heartbeat_interval = lease_duration / 3
  • candidate_timeout = lease_duration * 1.5

Trait Implementations§

Source§

impl Clone for ElectionConfig

Source§

fn clone(&self) -> ElectionConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ElectionConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ElectionConfig

Source§

fn default() -> Self

Creates default configuration with sensible production values

  • 10 second lease duration
  • 3 second heartbeat interval
  • 15 second candidate timeout
  • Elections enabled
  • Preemption enabled

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V