Packages

t

csw.event.api.scaladsl

SubscriptionMode

sealed trait SubscriptionMode extends AnyRef

The subscription mode is used to control the rate of events received by the subscriber.

Terminology:

Tick: Refers to the exact clock tick Interval: Refers to the duration between two ticks

Parameter mode can have two values -

- SubscriptionModes.RateAdapterMode - SubscriptionModes.RateLimiterMode

These two modes can be accessed in Java as:

- SubscriptionModes.jRateAdapterMode - SubscriptionModes.jRateLimiterMode

---------------------------------------------------------------------------------------------------------------------
                   |                 Rate Adapter                  |                 Rate Limiter
---------------------------------------------------------------------------------------------------------------------
                   |                                               |
1. Description     | Ensures that the subscriber will receive an   | Ensures that events will be delivered as soon
                   | event exactly at each tick.                   | as they are published along with the guarantee
                   |                                               | that no more than one event is delivered within
                   |                                               | a given interval.
                   |                                               |
2. Fast Publisher  | The subscriber receives the most recently     | The subscriber receives the event as soon as it
                   | published event at each tick.                 | is published during the interval.
                   |                                               |
                   | Some events will be dropped because of the    | Some events will be dropped because of the
                   | guarantee that exactly one event is received  | guarantee that at most one event is received
                   | at each tick.                                 | within an interval.
                   |                                               |
3. Slow Publisher  | The subscriber will get the last published    | The subscriber will not receive events at some
                   | event on each interval.                       | intervals.
                   |                                               |
                   | The subscriber will receive duplicate events  | The subscriber will never receive duplicate
                   | in case no element is published during that   | events.
                   | interval.                                     |
                   |                                               |
4. Use cases       | The synchronized event stream received on     | When there is no strict requirement of
                   | subscription can be used as clock ticks by a  | synchronization of received events with the
                   | component to perform other arbitrary tasks.   | clock tick and minimum latency is required.
                   |                                               |
5. Trade offs      | Latency of events received in this mode will  | The events received will not be in
                   | be more than that in                          | synchronization with the subscription frequency.
                   | [[SubscriptionModes.RateLimiterMode]].        |
                   |                                               | Some intervals might not receive an event.
                   |                                               |
                   |                                               | Duration observed between events received might
                   |                                               | not match with the specified subscription rate.
                   |                                               |
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SubscriptionMode
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  13. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  14. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  15. def toString(): String
    Definition Classes
    AnyRef → Any
  16. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  17. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  18. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

Inherited from AnyRef

Inherited from Any

Ungrouped