pub enum InfraEvent {
WireResponseLanded {
cmd_id: CommandId,
},
OpFailure {
op_ref: OpRef,
error: OpError,
},
WireDecodeFailure {
hash: u64,
payload_size: usize,
detail: String,
},
WireReceiveError {
src_peer: Option<PeerId>,
fill_index: u32,
actual_hash: u64,
payload_size: usize,
kind: WireReceiveErrorKind,
},
AppIngressError {
source: AppIngressSource,
byte_count: usize,
kind: AppIngressErrorKind,
},
BusOverflow {
count: usize,
},
PeerResolveFailure {
peer: Option<PeerId>,
op_ref: OpRef,
},
PeerSuspect {
site: NodeSiteId,
phi: f64,
},
PeerDown {
site: NodeSiteId,
phi: f64,
},
PeerLive {
site: NodeSiteId,
},
BackoffNoticeSent {
peer: PeerId,
cause: BackoffCause,
min_backoff_ns: u64,
},
SilentDropActive {
peer: PeerId,
},
}Expand description
Framework-emitted infrastructure events per
docs/ENGINE.md §13.1.
Variants§
WireResponseLanded
A previously-suspended wire-request’s response landed.
OpFailure
An Op invocation failed.
WireDecodeFailure
An inbound wire envelope’s payload could not be decoded - the payload’s wire-type hash didn’t resolve, the bytes were malformed, or the destination address parsing failed. The engine drops the envelope’s slot fill rather than writing garbage into a slot; this event lets the host observe the drop. Emitted by the inbound envelope router.
Fields
WireReceiveError
Per-fill failure on the wire-receive typed-decode path.
Distinct from InfraEvent::WireDecodeFailure
(envelope-level: malformed dest_suffix / header) -
WireReceiveError fires after the envelope has parsed and
an individual fill reached the decoder-registry lookup +
typed materialisation step. Other fills in the same
envelope continue to deliver (partial-delivery semantics).
Fields
src_peer: Option<PeerId>Sender of the failing envelope, if the wire layer was able to identify them.
fill_index: u32Position of the failing fill within the envelope (0-based). Other fills in the same envelope are still delivered.
payload_size: usizeBytes that did not deliver. Tracked for telemetry, NOT
for fallback decode - degrading to BytesValue is
exactly the silent type-loss path this surface closes.
kind: WireReceiveErrorKindWhich failure mode fired.
AppIngressError
Application-side ingress failure - host pushed an
AppEvent / Invoke / async completion whose payload could
not enter engine state because allocation failed, the
engine-wide ingress byte budget was exhausted, or a per-item
cap rejected the request at the boundary. The offending
bytes are dropped; the engine continues processing other
ingress work. Audience: host / SDK author watching their
own push errors (distinct from wire-side
InfraEvent::WireReceiveError).
Fields
source: AppIngressSourceWhich application-side entry point raised the failure
and the identity it carries (module/input name for
AppEvent / Invoke, CommandId for an async
completion).
kind: AppIngressErrorKindWhich failure mode fired.
BusOverflow
The typed bus dropped count oldest events to make room for
newer publishes when NodeConfig.bus_capacity was hit.
Emitted by the bus-routing pass if any drops accumulated
since the last poll.
PeerResolveFailure
Routable telemetry mirror of
crate::engine::EngineStep::PeerResolveFailed.
Surfaces via the bus to subscribers so dashboards can
monitor peer-resolution failures alongside PeerBlocked /
PeerDown / PeerUp from .
Fields
PeerSuspect
φ-accrual failure detector crossed the suspect threshold for the named logical site. Components (gossip overlays, peer-sampling services, deadline planners) subscribe to react.
Fields
site: NodeSiteIdSuspect logical site.
PeerDown
φ-accrual failure detector crossed the hard-down threshold for the named logical site.
PeerLive
φ collapsed back below the suspect threshold after a
PeerSuspect or PeerDown was emitted. Lets subscribers
reinstate the peer.
Fields
site: NodeSiteIdRecovered logical site.
BackoffNoticeSent
A BackoffNotice envelope was emitted to peer. Surfaces
the local overload decision on the bus so ops dashboards +
Component authors who want to react to local overload can
subscribe.
Fields
cause: BackoffCauseWhy the receiver requested back-off.
SilentDropActive
peer crossed the K-notices-without-recovery threshold;
subsequent envelopes from that peer are dropped silently at
the inbound boundary until the peer recovers. Emitted once
per silent-drop transition; the recovery path reuses the
existing PeerLive event.
Trait Implementations§
Source§impl Clone for InfraEvent
impl Clone for InfraEvent
Source§fn clone(&self) -> InfraEvent
fn clone(&self) -> InfraEvent
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for InfraEvent
impl RefUnwindSafe for InfraEvent
impl Send for InfraEvent
impl Sync for InfraEvent
impl Unpin for InfraEvent
impl UnsafeUnpin for InfraEvent
impl UnwindSafe for InfraEvent
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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