Skip to main content

NodeMetadata

Struct NodeMetadata 

Source
pub struct NodeMetadata {
    pub defer: bool,
    pub metadata: Option<HashMap<String, Value>>,
    pub destinations: Option<Vec<String>>,
    pub retry_policies: Vec<RetryPolicy>,
    pub error_handler: Option<String>,
    pub timeout_policies: Vec<TimeoutPolicy>,
    pub circuit_breaker: Option<CircuitBreakerConfig>,
    pub fallback_node: Option<String>,
}
Expand description

Metadata stored for each node during graph construction

Contains configuration options that affect node execution behavior. The actual defer/retry behavior is implemented by the Pregel engine.

Fields§

§defer: bool

Whether this node’s execution should be deferred

§metadata: Option<HashMap<String, Value>>

User-defined metadata for this node

§destinations: Option<Vec<String>>

Optional list of destination node names

§retry_policies: Vec<RetryPolicy>

Retry policies for this node

§error_handler: Option<String>

Optional error handler node name for engine-level error recovery.

When a task executing this node fails, the Pregel engine checks this field. If set, the engine creates a recovery task targeting the named handler node instead of canceling all remaining tasks. The error handler node receives a [NodeError] and returns a [Command] whose update is applied normally.

§timeout_policies: Vec<TimeoutPolicy>

Timeout policies for this node, applied by the Pregel engine during superstep execution. The timeout wraps the entire execution (including retry attempts when a retry policy is also configured).

§circuit_breaker: Option<CircuitBreakerConfig>

Optional circuit breaker configuration for this node.

When configured, the Pregel engine tracks consecutive failures and opens the circuit after the threshold is reached, preventing further execution attempts until the cooldown period expires.

§fallback_node: Option<String>

Optional fallback node name for graceful degradation.

When a task executing this node fails (after retries), the Pregel engine creates a recovery task targeting the fallback node instead of propagating the error. The fallback node receives the same state as the failed node and its output is applied normally.

Priority order for failure handling:

  1. fallback_node (if set)
  2. error_handler (if set)
  3. Cancel remaining tasks

Trait Implementations§

Source§

impl Clone for NodeMetadata

Source§

fn clone(&self) -> NodeMetadata

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 NodeMetadata

Source§

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

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

impl Default for NodeMetadata

Source§

fn default() -> NodeMetadata

Returns the “default value” for a type. 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<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> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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