Skip to main content

ContinuousNodeDriver

Struct ContinuousNodeDriver 

Source
pub struct ContinuousNodeDriver {
    pub graph_id: String,
    pub index: NodeFeatureIndex,
    pub subscriptions: SubscriptionRegistry,
    pub active_invocations: BTreeMap<String, String>,
    pub scope_barrier_active: bool,
    pub durable_cursor: u64,
    /* private fields */
}
Expand description

Continuous driver orchestrating node facades, feature indexing, queues, and result re-entry.

Fields§

§graph_id: String§index: NodeFeatureIndex§subscriptions: SubscriptionRegistry§active_invocations: BTreeMap<String, String>§scope_barrier_active: bool§durable_cursor: u64

Implementations§

Source§

impl ContinuousNodeDriver

Source

pub fn new( graph_id: impl Into<String>, queue: FairDispatchQueue, subscriptions: SubscriptionRegistry, ) -> ContinuousNodeDriver

Source

pub fn register_node(&mut self, facade: NodeFacade)

Register a new node facade into the driver and feature index.

Source

pub fn drive_step(&mut self) -> Result<DriverStepOutcome, DriverError>

Perform a single drive step:

  1. Pull next queue item.
  2. Validate live recipient states and generations.
  3. Dispatch to node facades.
  4. Poll and re-enter settled invocations.
Source

pub fn reenter_result( &mut self, reentry: ResultReentry, ) -> Result<NodeExecutionReceipt, DriverError>

Re-enter an execution result carrying full source identity. Stale generations are rejected and cannot satisfy new dependencies.

Source

pub fn pause_graph(&mut self) -> Result<GraphPauseReport, DriverError>

Graceful graph pause: establishes scope admission barrier and requests pause on all active nodes. Collects per-node outcomes without fabricating success for unavailable backends.

Source

pub fn stop_graph( &mut self, reason: &str, ) -> Result<GraphStopReport, DriverError>

Graceful graph stop: establishes scope admission barrier and cooperatively cancels all active nodes. Collects per-node outcomes and preserves requested, acknowledged, and effect-unknown facts.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.