Skip to main content

InfraEvent

Enum InfraEvent 

Source
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.

Fields

§cmd_id: CommandId

The CommandId that the wire-request was suspended on.

§

OpFailure

An Op invocation failed.

Fields

§op_ref: OpRef

The Op that failed.

§error: OpError

The failure detail.

§

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

§hash: u64

Wire-type hash that the envelope advertised (0 if the failure occurred before the hash could be read).

§payload_size: usize

Length of the offending payload, in bytes.

§detail: String

Human-readable failure detail.

§

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: u32

Position of the failing fill within the envelope (0-based). Other fills in the same envelope are still delivered.

§actual_hash: u64

The type_hash the sender stamped on the fill.

§payload_size: usize

Bytes 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: WireReceiveErrorKind

Which 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: AppIngressSource

Which application-side entry point raised the failure and the identity it carries (module/input name for AppEvent / Invoke, CommandId for an async completion).

§byte_count: usize

Bytes the boundary was asked to admit.

§kind: AppIngressErrorKind

Which 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.

Fields

§count: usize

Number of events FIFO-dropped 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

§peer: Option<PeerId>

The peer whose addresses could not be resolved. None when the failing Send op had no parseable peer input.

§op_ref: OpRef

The Send op that failed to resolve.

§

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: NodeSiteId

Suspect logical site.

§phi: f64

Current φ value (informational; subscribers can ignore).

§

PeerDown

φ-accrual failure detector crossed the hard-down threshold for the named logical site.

Fields

§site: NodeSiteId

Down logical site.

§phi: f64

Current φ value.

§

PeerLive

φ collapsed back below the suspect threshold after a PeerSuspect or PeerDown was emitted. Lets subscribers reinstate the peer.

Fields

§site: NodeSiteId

Recovered 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

§peer: PeerId

The sender the receiver asked to slow down.

§cause: BackoffCause

Why the receiver requested back-off.

§min_backoff_ns: u64

min_backoff_ns quoted on the notice.

§

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.

Fields

§peer: PeerId

The sender now in silent-drop mode.

Trait Implementations§

Source§

impl Clone for InfraEvent

Source§

fn clone(&self) -> InfraEvent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for InfraEvent

Source§

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

Formats the value using the given formatter. Read more

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> ErasedComponent for T
where T: Any + Send + Sync,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more