Trait

com.rbmhtechnology.eventuate.log

EventLogSPI

Related Doc: package log

Permalink

trait EventLogSPI[A] extends AnyRef

Event log storage provider interface (SPI).

A

Event log state type.

Self Type
EventLogSPI[A] with Actor
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EventLogSPI
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def read(fromSequenceNr: Long, toSequenceNr: Long, max: Int, aggregateId: String): Future[BatchReadResult]

    Permalink

    Asynchronously batch-reads events whose destinationAggregateIds contains the given aggregateId.

    Asynchronously batch-reads events whose destinationAggregateIds contains the given aggregateId. At most max events must be returned that are within the sequence number bounds fromSequenceNr and toSequenceNr.

    fromSequenceNr

    sequence number to start reading (inclusive).

    toSequenceNr

    sequence number to stop reading (inclusive) or earlier if max events have already been read.

  2. abstract def read(fromSequenceNr: Long, toSequenceNr: Long, max: Int): Future[BatchReadResult]

    Permalink

    Asynchronously batch-reads events from the raw event log.

    Asynchronously batch-reads events from the raw event log. At most max events must be returned that are within the sequence number bounds fromSequenceNr and toSequenceNr.

    fromSequenceNr

    sequence number to start reading (inclusive).

    toSequenceNr

    sequence number to stop reading (inclusive) or earlier if max events have already been read.

  3. abstract def readReplicationProgress(logId: String): Future[Long]

    Permalink

    Asynchronously reads the replication progress for given source logId.

    Asynchronously reads the replication progress for given source logId.

    See also

    ReplicationProtocol.GetReplicationProgress

  4. abstract def readReplicationProgresses: Future[Map[String, Long]]

    Permalink

    Asynchronously reads all stored local replication progresses.

    Asynchronously reads all stored local replication progresses.

    See also

    ReplicationProtocol.GetReplicationProgresses

  5. abstract def recoverState: Future[A]

    Permalink

    Asynchronously recovers event log state from the storage backend.

  6. abstract def replicationRead(fromSequenceNr: Long, toSequenceNr: Long, max: Int, scanLimit: Int, filter: (DurableEvent) ⇒ Boolean): Future[BatchReadResult]

    Permalink

    Asynchronously batch-reads events from the raw event log.

    Asynchronously batch-reads events from the raw event log. At most max events must be returned that are within the sequence number bounds fromSequenceNr and toSequenceNr and that pass the given filter.

    fromSequenceNr

    sequence number to start reading (inclusive).

    toSequenceNr

    sequence number to stop reading (inclusive) or earlier if max events have already been read.

  7. abstract def settings: EventLogSettings

    Permalink

    Event log settings.

  8. abstract def write(events: Seq[DurableEvent], partition: Long, clock: EventLogClock): Unit

    Permalink

    Synchronously writes events to the given partition.

    Synchronously writes events to the given partition. The partition is calculated from the configured partitionSizeMax and the current sequence number. Asynchronous writes will be supported in future versions.

    This method may only throw an exception if it can guarantee that events have not been written to the storage backend. If this is not the case (e.g. after a timeout communicating with a remote storage backend) this method must retry writing or give up by stopping the actor with context.stop(self). This is necessary to avoid that events are erroneously excluded from the event stream sent to event-sourced actors, views, writers and processors, as they may later re-appear during recovery which would violate ordering/causality guarantees.

    Implementations that potentially retry a write for a longer time should use a CircuitBreaker for protecting themselves against request overload.

    See also

    EventLogSettings

  9. abstract def writeDeletionMetadata(data: DeletionMetadata): Unit

    Permalink

    Synchronously writes metadata for a Delete request.

    Synchronously writes metadata for a Delete request. This marks events up to DeletionMetadata.toSequenceNr as deleted, i.e. they are not read on replay and indicates which remote logs must have replicated these events before they are allowed to be physically deleted locally.

  10. abstract def writeEventLogClockSnapshot(clock: EventLogClock): Future[Unit]

    Permalink

    Asynchronously writes the current snapshot of the event log clock

  11. abstract def writeReplicationProgresses(progresses: Map[String, Long]): Future[Unit]

    Permalink

    Asynchronously writes the replication progresses for source log ids given by progresses keys.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def delete(toSequenceNr: Long): Future[Long]

    Permalink

    Instructs the log to asynchronously and physically delete events up to toSequenceNr.

    Instructs the log to asynchronously and physically delete events up to toSequenceNr. This operation completes when physical deletion completed and returns the sequence nr up to which events have been deleted. This can be smaller then the requested toSequenceNr if a backend has to keep events for internal reasons. A backend that does not support physical deletion should not override this method.

  7. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  11. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  12. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  13. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  14. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. def recoverStateFailure(cause: Throwable): Unit

    Permalink

    Called after failed event log state recovery.

  17. def recoverStateSuccess(state: A): Unit

    Permalink

    Called after successful event log state recovery.

  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  19. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped