pub trait RuntimeControlPlane: Send + Sync {
// Required methods
fn ingest<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
input: Input,
) -> Pin<Box<dyn Future<Output = Result<AcceptOutcome, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn publish_event<'life0, 'async_trait>(
&'life0 self,
event: RuntimeEventEnvelope,
) -> Pin<Box<dyn Future<Output = Result<(), RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn retire<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RetireReport, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn recycle<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RecycleReport, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn reset<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<ResetReport, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn recover<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RecoveryReport, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn runtime_state<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RuntimeState, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn destroy<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<DestroyReport, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn load_boundary_receipt<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
run_id: &'life2 RunId,
sequence: u64,
) -> Pin<Box<dyn Future<Output = Result<Option<RunBoundaryReceipt>, RuntimeControlPlaneError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
}Expand description
The runtime control plane — manages multiple runtime instances.
Required Methods§
Sourcefn ingest<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
input: Input,
) -> Pin<Box<dyn Future<Output = Result<AcceptOutcome, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ingest<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
input: Input,
) -> Pin<Box<dyn Future<Output = Result<AcceptOutcome, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Ingest an input into a specific runtime.
Sourcefn publish_event<'life0, 'async_trait>(
&'life0 self,
event: RuntimeEventEnvelope,
) -> Pin<Box<dyn Future<Output = Result<(), RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn publish_event<'life0, 'async_trait>(
&'life0 self,
event: RuntimeEventEnvelope,
) -> Pin<Box<dyn Future<Output = Result<(), RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Publish a runtime event.
Sourcefn retire<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RetireReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn retire<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RetireReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retire a runtime (no new input, drain existing).
Sourcefn recycle<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RecycleReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn recycle<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RecycleReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Recycle a runtime (reset driver and recover state).
Sourcefn reset<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<ResetReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reset<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<ResetReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reset a runtime (abandon all pending input).
Sourcefn recover<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RecoveryReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn recover<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RecoveryReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Recover a runtime from crash.
Sourcefn runtime_state<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RuntimeState, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn runtime_state<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<RuntimeState, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get the state of a runtime.
Sourcefn destroy<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<DestroyReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn destroy<'life0, 'life1, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
) -> Pin<Box<dyn Future<Output = Result<DestroyReport, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Destroy a runtime (terminal state, no recovery possible).
Sourcefn load_boundary_receipt<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
run_id: &'life2 RunId,
sequence: u64,
) -> Pin<Box<dyn Future<Output = Result<Option<RunBoundaryReceipt>, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn load_boundary_receipt<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
runtime_id: &'life1 LogicalRuntimeId,
run_id: &'life2 RunId,
sequence: u64,
) -> Pin<Box<dyn Future<Output = Result<Option<RunBoundaryReceipt>, RuntimeControlPlaneError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Load a boundary receipt for verification.