pub enum RouteDecision {
Local,
Forward {
owner: NodeRef,
shard: usize,
},
NotOwner {
shard: usize,
},
}Expand description
The routing verdict for a mutation/read (signal/query/cancel) whose target
workflow_id is known up front.
Variants§
Local
This node owns the workflow’s shard, owns all shards, is not clustered, or
the owner is Unknown (route optimistically; the fence backstops):
proceed to the local engine.
Forward
A live remote node owns the workflow’s shard. R-2 cannot forward yet, so
the edge returns NotOwner for this; R-3 forwards to owner when it has
a grpc_addr and returns NotOwner only when it does not.
Fields
NotOwner
Another node owns the workflow’s shard and there is no forwarding target
(no directory, or the owner declared no gRPC address). Return the typed
retryable NotOwner carrying the shard so a routing-aware caller can
re-resolve and retry.
Trait Implementations§
Source§impl Clone for RouteDecision
impl Clone for RouteDecision
Source§fn clone(&self) -> RouteDecision
fn clone(&self) -> RouteDecision
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RouteDecision
impl Debug for RouteDecision
impl Eq for RouteDecision
Source§impl PartialEq for RouteDecision
impl PartialEq for RouteDecision
impl StructuralPartialEq for RouteDecision
Auto Trait Implementations§
impl Freeze for RouteDecision
impl RefUnwindSafe for RouteDecision
impl Send for RouteDecision
impl Sync for RouteDecision
impl Unpin for RouteDecision
impl UnsafeUnpin for RouteDecision
impl UnwindSafe for RouteDecision
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request