pub struct Sender {Show 15 fields
pub listener: ReplicationListener,
pub repl_consumer_1: ReplicationConsumer,
pub repl_consumer_2: ReplicationConsumer,
pub replica_slots: Arc<ReplicaSlotCursors>,
pub journal_path: PathBuf,
pub authorized_keys: Arc<AuthorizedKeys>,
pub evict_flags: [Arc<AtomicBool>; 2],
pub active_flags: [Arc<AtomicBool>; 2],
pub metrics: Arc<ReplicationMetrics>,
pub handler_cores: [usize; 2],
pub batch_size: usize,
pub heartbeat_secs: u64,
pub busy_spin: bool,
pub fence_state: Arc<FenceState>,
pub durability_mode: Arc<AtomicU8>,
}Fields§
§listener: ReplicationListenerPre-bound replication listener, non-blocking by construction.
Bound by the caller at startup — not here — so a bad or stolen
--replication-bind port fails the boot with a clear error.
Binding on this thread meant a failure only killed the sender
silently, leaving a primary that looked healthy but could never
satisfy hybrid/durably-replicated acks.
repl_consumer_1: ReplicationConsumer§repl_consumer_2: ReplicationConsumer§replica_slots: Arc<ReplicaSlotCursors>§journal_path: PathBuf§evict_flags: [Arc<AtomicBool>; 2]§active_flags: [Arc<AtomicBool>; 2]§metrics: Arc<ReplicationMetrics>§handler_cores: [usize; 2]§batch_size: usize§heartbeat_secs: u64§busy_spin: bool§fence_state: Arc<FenceState>Node fencing state. Read to stamp the primary’s epoch onto each
StreamStart, and to self-demote when a replica handshakes with a
higher epoch (this primary has been superseded). See crate::fence.
durability_mode: Arc<AtomicU8>The active durability (acking) mode, shared with the response
gate and the admin DURABILITY command. Stamped on every
StreamStart and Heartbeat so replicas judge auto-promotion
against the mode this primary actually acks under.