#[non_exhaustive]pub enum Event {
Input {
id: DataId,
metadata: Metadata,
data: ArrowData,
},
InputClosed {
id: DataId,
},
InputRecovered {
id: DataId,
},
NodeRestarted {
id: NodeId,
},
Stop(StopCause),
Reload {
operator_id: Option<OperatorId>,
},
ParamUpdate {
key: String,
value: Value,
},
ParamDeleted {
key: String,
},
NodeFailed {
affected_input_ids: Vec<DataId>,
error: String,
source_node_id: NodeId,
},
Error(String),
}Expand description
Represents an incoming Dora event.
Events might be triggered by other nodes, by Dora itself, or by some external user input.
It’s safe to ignore event types that are not relevant to the node.
This enum is marked as non_exhaustive because we might add additional
variants in the future. Please ignore unknown event types instead of throwing an
error to avoid breakage when updating Dora.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Input
An input was received from another node.
This event corresponds to one of the inputs of the node as specified
in the dataflow YAML file.
Fields
InputClosed
An input was closed by the sender.
The sending node mapped to an input exited, so this input will receive no more data.
Fields
InputRecovered
A previously closed input has recovered and will receive data again.
This happens when an upstream node that timed out (via input_timeout)
starts producing data again. The circuit breaker automatically re-opens
the input.
NodeRestarted
An upstream node has restarted.
Sent to downstream nodes when a node with a restart policy successfully restarts after a failure. Nodes can use this to reset state, clear caches, or log the recovery.
Stop(StopCause)
Notification that the event stream is about to close.
The StopCause field contains the reason for the event stream closure.
Nodes should exit once the event stream closes.
Reload
Instructs the node to reload itself or one of its operators.
This event is currently only used for reloading Python operators that are
started by a dora runtime process. So this event should not be sent to normal
nodes yet.
Fields
operator_id: Option<OperatorId>The ID of the operator that should be reloaded.
There is currently no case where operator_id is None.
ParamUpdate
A runtime parameter has been updated via dora param set.
Nodes can use this to dynamically adjust behavior (e.g., thresholds, rates) without restarting.
ParamDeleted
A runtime parameter has been deleted via dora param delete.
Nodes can use this to remove local overrides and fall back to defaults.
NodeFailed
An upstream node has failed.
Sent to downstream nodes when an upstream node exits with a non-zero exit code. Downstream nodes can use this to handle the failure gracefully (e.g. switch to cached data, log, retry).
Fields
Error(String)
Notifies the node about an unexpected error that happened inside Dora.
It’s a good idea to output or log this error for debugging.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Event
impl !UnwindSafe for Event
impl Freeze for Event
impl Send for Event
impl Sync for Event
impl Unpin for Event
impl UnsafeUnpin for Event
Blanket Implementations§
Source§impl<Source> AccessAs for Source
impl<Source> AccessAs for Source
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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> 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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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