[][src]Enum eventstore::SystemConsumerStrategy

pub enum SystemConsumerStrategy {
    DispatchToSingle,
    RoundRobin,
    Pinned,
}

System supported consumer strategies for use with persistent subscriptions.

Variants

DispatchToSingle

Distributes events to a single client until the bufferSize is reached. After which the next client is selected in a round robin style, and the process is repeated.

RoundRobin

Distributes events to all clients evenly. If the client buffer-size is reached the client is ignored until events are acknowledged/not acknowledged.

Pinned

For use with an indexing projection such as the system $by_category projection. Event Store inspects event for its source stream id, hashing the id to one of 1024 buckets assigned to individual clients. When a client disconnects it's buckets are assigned to other clients. When a client connects, it is assigned some of the existing buckets. This naively attempts to maintain a balanced workload. The main aim of this strategy is to decrease the likelihood of concurrency and ordering issues while maintaining load balancing. This is not a guarantee, and you should handle the usual ordering and concurrency issues.

Trait Implementations

impl Clone for SystemConsumerStrategy[src]

impl Copy for SystemConsumerStrategy[src]

impl Debug for SystemConsumerStrategy[src]

impl Eq for SystemConsumerStrategy[src]

impl PartialEq<SystemConsumerStrategy> for SystemConsumerStrategy[src]

impl StructuralEq for SystemConsumerStrategy[src]

impl StructuralPartialEq for SystemConsumerStrategy[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> IntoRequest<T> for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

impl<T> WithSubscriber for T[src]