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.
- Alphabetic
- By Inheritance
- DurableQueue
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new DurableQueue()
Abstract Value Members
- 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.
- 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
- 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.
- 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
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- 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()
- 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
- 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
- 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
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withNamespace(namespace: String): DurableQueue
Returns a
DurableQueue
instance that guarantees that all topic access is within the provided namespace.