Packages

abstract class DurableQueue extends AnyRef

A durable queue is a commit log where its elements are stored for a period of time. Kafka and Chronicle Queue are good examples of durable queues. Topics yield elements on the queue can be tailed and started within an optional offset. Topics can be appended to and are always acknowledged for simplicity. When appending, the topic is provided and the queue is treated as a single entity. Underlying implementations may further fan-out as per their requirements e.g. Kafka has a single queue destination, while Chronicle Queue fans out to queues per topic.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. DurableQueue
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new DurableQueue()

Abstract Value Members

  1. abstract def commit[A](tailerId: UUID): Flow[(Committable, A), A, NotUsed]

    A flow that tracks consumed offsets, and when successfully consumed stores the offset.

    A flow that tracks consumed offsets, and when successfully consumed stores the offset. Due to the nature of distributed systems, tailers should be able to gracefully consume the same messages more than once, given that e.g. the commit operation could fail.

    tailerId

    An id for the tailer. Named (V3 or V5) UUIDs are recommended for deterministic UUID calculation.

    returns

    A flow that accepts CommittableEvent instance and a carry element and stores their offsets, emitting the carry element.

  2. abstract def flow[A]: Flow[CommandRequest[A], CommandReply[A], NotUsed]

    Append a command request to a queue

    Append a command request to a queue

    A

    The type of data to carry through

    returns

    a flow that takes a command and returns with an acknowledgement

  3. abstract def offset(topic: Topic, tailerId: UUID): Future[Option[Long]]

    Returns the latest offset a given tailer has committed.

    Returns the latest offset a given tailer has committed.

    tailerId

    An id for the tailer. Named (V3 or V5) UUIDs are recommended for deterministic UUID calculation.

  4. abstract def sourceEvent(topic: Topic, offset: Option[Long], finite: Boolean): Source[Event, NotUsed]

    Tail the queue for a variety of events

    Tail the queue for a variety of events

    topic

    the specific topic to tail

    offset

    an optional index at which to start tailing

    finite

    if true, stop tailing once the end of the queue has been reached

    returns

    a source representing the tail of events

Concrete 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()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  9. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. def sink[A]: Sink[CommandRequest[A], Future[Done]]

    Append a command request to a queue via a sink for convenience

    Append a command request to a queue via a sink for convenience

    A

    The type of data to carry through

    returns

    a sink that takes a command and returns with an acknowledgement

    Annotations
    @SuppressWarnings()
  16. def source(topic: Topic, offset: Option[Long], finite: Boolean): Source[Received, NotUsed]

    Tail the queue for received events

    Tail the queue for received events

    topic

    the specific topic to tail

    offset

    an optional index at which to start tailing

    finite

    if true, stop tailing once the end of the queue has been reached

    returns

    a source representing the tail of events

  17. def source(topic: Topic, offset: Option[Long]): Source[Received, NotUsed]

    Tail the queue for received events

    Tail the queue for received events

    topic

    the specific topic to tail

    offset

    an optional index at which to start tailing

    returns

    a source representing the tail of events

  18. def source(topic: Topic): Source[Received, NotUsed]

    Tail the queue for received events

    Tail the queue for received events

    topic

    the specific topic to tail

    returns

    a source representing the tail of events

  19. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  20. def toString(): String
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  24. def withNamespace(namespace: String): DurableQueue

    Returns a DurableQueue instance that guarantees that all topic access is within the provided namespace.

Inherited from AnyRef

Inherited from Any

Ungrouped