pub struct FrameworkComponents {Show 18 fields
pub scheduler: Scheduler,
pub peer_state: PeerState,
pub request_tracker: RequestTracker,
pub inbound_dedup: InboundDedup,
pub address_book: AddressBook,
pub rtt_tracker: RttTracker,
pub outbound_queue: OutboundQueue,
pub event_source: EventSource,
pub serialize_queue: SerializeQueue,
pub hold_table: HoldTable,
pub record_buffer: RecordBuffer,
pub pending_app_events: Vec<AppEvent>,
pub counters: HashMap<String, u64>,
pub rng: Box<dyn RngU64Source>,
pub any_fired_groups: HashSet<String>,
pub deadline_match_fired: HashSet<(u64, u64)>,
pub pending_peer_resolve_failures: Vec<(Option<PeerId>, OpRef)>,
pub inbound_contexts: HashMap<ExecId, InboundContext>,
}Expand description
docs/ENGINE.md §3 bundle of framework primitives. Split-borrowed
into each dispatch_atomic call’s RuntimeResourceRef.
Fields§
§scheduler: SchedulerSorted timer heap. Sleep/Interval/Pulse syscalls
schedule entries here; Phase 4 of the poll cycle drains
matured timers and re-fires their consumer ops.
peer_state: PeerStateConsolidated per-peer state: named concurrency gate, policy +
health governor, and exponential backoff. Component authors
reach the three sub-primitives through peer_state.{gate, governor, backoff}.
request_tracker: RequestTrackerIn-flight wire-request → CommandId map + token minter.
inbound_dedup: InboundDedupSliding-window seen-message tracker.
address_book: AddressBookPeerId → Address mapping.
rtt_tracker: RttTrackerPer-NodeSiteId adaptive RTT tracker driving deadline
derivation for every wire round-trip the engine observes. Fed
by Engine::wire_send_tracked on send + by the response path
on completion.
outbound_queue: OutboundQueueFIFO of wire envelopes ready to ship.
event_source: EventSourceRegistered EventKind → ComponentTag subscriptions.
serialize_queue: SerializeQueueNamed-FIFO map for Serialize.Enqueue / Dequeue.
hold_table: HoldTableNamed-slot value buffer for Hold.Stash / Flush.
record_buffer: RecordBufferPer-name bounded ring buffer for Record.
pending_app_events: Vec<AppEvent>App events pending Phase 8 emission.
counters: HashMap<String, u64>Per-Node counters bumped by IncrMetric syscalls.
rng: Box<dyn RngU64Source>u64 RNG source used by the RngU64 syscall.
any_fired_groups: HashSet<String>Per-group first-arrival latch for the Any syscall. Once a
group fires, subsequent arrivals are absorbed without
re-firing. Cleared on snapshot restore via the framework
reset.
deadline_match_fired: HashSet<(u64, u64)>Per-(OpRef, ExecId) latch for the DeadlineMatch syscall.
First invocation per execution determines the winner (then
if non-empty, otherwise timeout); subsequent invocations
inside the same execution are absorbed. New executions start
fresh — the latch is keyed by ExecId, not just OpRef, so a
DeadlineMatch op fires once per logical execution rather
than once per Node lifetime.
pending_peer_resolve_failures: Vec<(Option<PeerId>, OpRef)>Peer-resolution failures captured during wire::Send
dispatch when the destination PeerId either isn’t in the
AddressBook or maps to an empty address list. The engine
drains this in Phase 8 and surfaces each entry as both a
EngineStep::PeerResolveFailed and a bus
InfraEvent::PeerResolveFailure. Per
docs/ADDRESSING.md.
inbound_contexts: HashMap<ExecId, InboundContext>Per-ExecId inbound envelope context. Populated by
Engine::route_envelope when a wire envelope arrives; read by
RX gates (PeerHealthGateRx, BackoffGateRx) for src-peer
filtering and by wire.Send for in-chain correlation token
reuse + Dapper-style elapsed-time accounting.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for FrameworkComponents
impl !UnwindSafe for FrameworkComponents
impl Freeze for FrameworkComponents
impl Send for FrameworkComponents
impl Sync for FrameworkComponents
impl Unpin for FrameworkComponents
impl UnsafeUnpin for FrameworkComponents
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> ErasedComponent for T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request