pub struct DistributedStreamCoordinator { /* private fields */ }Expand description
Distributed stream coordinator.
Implementations§
Source§impl DistributedStreamCoordinator
impl DistributedStreamCoordinator
Sourcepub fn new(
config: CoordinatorConfig,
sink: Arc<dyn StreamSink>,
shipper: Arc<EventShipper>,
) -> CoordinatorResult<Self>
pub fn new( config: CoordinatorConfig, sink: Arc<dyn StreamSink>, shipper: Arc<EventShipper>, ) -> CoordinatorResult<Self>
Build a coordinator.
Sourcepub fn stats(&self) -> &Arc<CoordinatorStats> ⓘ
pub fn stats(&self) -> &Arc<CoordinatorStats> ⓘ
Stats accessor.
Sourcepub fn shard_manager(&self) -> &ShardManager
pub fn shard_manager(&self) -> &ShardManager
Shard manager handle.
Sourcepub fn current_assignment(&self) -> ShardAssignment
pub fn current_assignment(&self) -> ShardAssignment
Latest installed assignment.
Sourcepub fn local_node(&self) -> &NodeId
pub fn local_node(&self) -> &NodeId
Local node identifier.
Sourcepub async fn join(&self, node: NodeId) -> CoordinatorResult<RebalancePlan>
pub async fn join(&self, node: NodeId) -> CoordinatorResult<RebalancePlan>
Register a node with the coordinator (typically the local node when the cluster boots, then any peer nodes as they appear).
Sourcepub async fn leave(&self, node: &str) -> CoordinatorResult<RebalancePlan>
pub async fn leave(&self, node: &str) -> CoordinatorResult<RebalancePlan>
Deregister a node.
Sourcepub fn install_assignment(&self, assignment: ShardAssignment) -> RebalancePlan
pub fn install_assignment(&self, assignment: ShardAssignment) -> RebalancePlan
Apply an assignment that was committed elsewhere (e.g. seen on a Raft follower). The shard manager and the coordinator’s cached assignment are updated to match. No new Raft proposal is issued.
Sourcepub async fn route(
&self,
partition_key: &str,
payload: &Value,
) -> CoordinatorResult<RoutedEvent>
pub async fn route( &self, partition_key: &str, payload: &Value, ) -> CoordinatorResult<RoutedEvent>
Decide which node owns the shard for partition_key, ship the event
there, and return a RoutedEvent describing the decision.
Sourcepub fn shard_for_key_value(&self, partition_key: &str) -> Option<ShardId>
pub fn shard_for_key_value(&self, partition_key: &str) -> Option<ShardId>
Compute the shard id for a partition key without performing any I/O.
Auto Trait Implementations§
impl !Freeze for DistributedStreamCoordinator
impl !RefUnwindSafe for DistributedStreamCoordinator
impl !UnwindSafe for DistributedStreamCoordinator
impl Send for DistributedStreamCoordinator
impl Sync for DistributedStreamCoordinator
impl Unpin for DistributedStreamCoordinator
impl UnsafeUnpin for DistributedStreamCoordinator
Blanket Implementations§
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
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> 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>
Converts
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>
Converts
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 moreimpl<T> MaybeDebug for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.