Trait/Object

io.atlassian.event.stream

SnapshotStorage

Related Docs: object SnapshotStorage | package stream

Permalink

trait SnapshotStorage[F[_], K, S, V] extends AnyRef

Implementations of this interface deal with persisting snapshots so that they don't need to be recomputed every time. Specifically, implementations do NOT deal with generating snapshots, only storing/retrieving any persisted snapshot.

F

Container around operations on an underlying data store e.g. Task.

K

The type of the key for snapshots. This does not need to be the same as for the event stream itself.

V

The type of the value wrapped by Snapshots that this store persists.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. SnapshotStorage
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def get(key: K, sequence: SequenceQuery[S]): F[Snapshot[S, V]]

    Permalink

    Retrieve a snapshot before the given sequence number.

    Retrieve a snapshot before the given sequence number. We typically specify a sequence number if we want to get some old snapshot i.e. the latest persisted snapshot may have been generated after the point in time that we're interested in.

    key

    The key

    sequence

    What sequence we want to get the snapshot for (earliest snapshot, latest, or latest before some sequence)

    returns

    The snapshot, a NoSnapshot if there was no snapshot for the given conditions.

  2. abstract def put(snapshotKey: K, snapshot: Snapshot[S, V], mode: SnapshotStoreMode): F[\/[Error, Snapshot[S, V]]]

    Permalink

    Save a given snapshot

    Save a given snapshot

    snapshotKey

    The key

    snapshot

    The snapshot to save

    mode

    Defines whether the given snapshot should be deemed the earliest point in the event stream (Epoch) or not (Cache)

    returns

    Either a Throwable (for error) or the saved snapshot.

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. final def eq(arg0: AnyRef): Boolean

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

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

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

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

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

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

Inherited from AnyRef

Inherited from Any

Ungrouped