stamina
package stamina
- Alphabetic
- By Inheritance
- stamina
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Package Members
- package migrations
Type Members
- type ByteString = akka.util.ByteString
Type alias for Akka's ByteSttring so we don't have to import it everywhere.
- sealed trait IsNextVersionAfter[A <: Version, B <: Version] extends AnyRef
Type class used by the API to enforce two Version subclasses to be sequential.
Type class used by the API to enforce two Version subclasses to be sequential.
- Annotations
- @implicitNotFound("Cannot find proof that ${A} is the next version after ${B}")
- sealed trait MigratableVersion[V <: Version] extends AnyRef
Type class used to indicate that a Version subclass can be migrated (i.e.
Type class used to indicate that a Version subclass can be migrated (i.e. it is higher than V1)
- Annotations
- @implicitNotFound("Cannot find proof that ${V} is a migratable version (i.e. it is higher than V1)")
- trait Persistable extends Serializable
Marker trait for classes that should be persisted using the StaminaAkkaSerializer.
Marker trait for classes that should be persisted using the StaminaAkkaSerializer.
This marker trait can be used to mark all your top-level persistable classes (i.e. events, snapshots, etc.) so that you will only need a few lines of configuration in your application.conf, namely:
akka.actor.serializers.stamina = <FQCN of your subclass of StaminaAkkaSerializer> akka.actor.serialization-bindings { "stamina.Persistable" = stamina }
- case class Persisted(key: String, version: Int, bytes: ByteString) extends Product with Serializable
A simple container holding a persistence key, a version number, and the associated serialized bytes.
- trait PersistedCodec extends AnyRef
The encoding used to translate an instance of
Persisted
to a byte array and back. - abstract class Persister[T, V <: Version] extends AnyRef
A Persister[T, V] provides a type-safe API for persisting instances of T at version V and unpersisting persisted instances of T for all versions up to and including version V.
- case class Persisters(persisters: List[Persister[_, _]]) extends Product with Serializable
Persisters is the bridge between the type-safe world of
Persister[T, V]
and the untyped, AnyRef world of Akka serializers.Persisters is the bridge between the type-safe world of
Persister[T, V]
and the untyped, AnyRef world of Akka serializers. It wraps one or more instances ofPersister[_, _]
and combines them together to form one single entry-point for subclasses ofStaminaAkkaSerializer
- abstract class StaminaAkkaSerializer extends Serializer
A custom Akka Serializer specifically designed for use with Akka Persistence.
- case class UnrecoverableDataException(persisted: Persisted, error: Throwable) extends RuntimeException with NoStackTrace with Product with Serializable
- case class UnregisteredTypeException(obj: AnyRef) extends RuntimeException with NoStackTrace with Product with Serializable
- case class UnsupportedDataException(persisted: Persisted) extends RuntimeException with NoStackTrace with Product with Serializable
- sealed trait V1 extends Version
- sealed trait V10 extends Version
- sealed trait V11 extends Version
- sealed trait V12 extends Version
- sealed trait V13 extends Version
- sealed trait V14 extends Version
- sealed trait V15 extends Version
- sealed trait V16 extends Version
- sealed trait V17 extends Version
- sealed trait V18 extends Version
- sealed trait V19 extends Version
- sealed trait V2 extends Version
- sealed trait V20 extends Version
- sealed trait V21 extends Version
- sealed trait V22 extends Version
- sealed trait V23 extends Version
- sealed trait V24 extends Version
- sealed trait V25 extends Version
- sealed trait V26 extends Version
- sealed trait V27 extends Version
- sealed trait V28 extends Version
- sealed trait V29 extends Version
- sealed trait V3 extends Version
- sealed trait V30 extends Version
- sealed trait V31 extends Version
- sealed trait V32 extends Version
- sealed trait V33 extends Version
- sealed trait V34 extends Version
- sealed trait V35 extends Version
- sealed trait V36 extends Version
- sealed trait V37 extends Version
- sealed trait V38 extends Version
- sealed trait V39 extends Version
- sealed trait V4 extends Version
- sealed trait V40 extends Version
- sealed trait V41 extends Version
- sealed trait V42 extends Version
- sealed trait V43 extends Version
- sealed trait V44 extends Version
- sealed trait V45 extends Version
- sealed trait V46 extends Version
- sealed trait V47 extends Version
- sealed trait V48 extends Version
- sealed trait V49 extends Version
- sealed trait V5 extends Version
- sealed trait V50 extends Version
- sealed trait V6 extends Version
- sealed trait V7 extends Version
- sealed trait V8 extends Version
- sealed trait V9 extends Version
- sealed abstract class Version extends AnyRef
Superclass of all version classes.
Superclass of all version classes. Represents a version number as a type.
- abstract class VersionInfo[V <: Version] extends AnyRef
Type class that supplies relevant information for a specific Version subclass.
Type class that supplies relevant information for a specific Version subclass.
- Annotations
- @implicitNotFound("Cannot find VersionInfo type class for ${V}")
Value Members
- val ByteString: akka.util.ByteString.type
- object DefaultPersistedCodec extends PersistedCodec
Uses the following structure:
Uses the following structure:
- length of key (4 bytes),
- key bytes (n bytes),
- version (4 bytes)
- persisted data (n bytes)
- object Persisted extends Serializable
- object Persisters extends Serializable
- object V1
- object V10
- object V11
- object V12
- object V13
- object V14
- object V15
- object V16
- object V17
- object V18
- object V19
- object V2
- object V20
- object V21
- object V22
- object V23
- object V24
- object V25
- object V26
- object V27
- object V28
- object V29
- object V3
- object V30
- object V31
- object V32
- object V33
- object V34
- object V35
- object V36
- object V37
- object V38
- object V39
- object V4
- object V40
- object V41
- object V42
- object V43
- object V44
- object V45
- object V46
- object V47
- object V48
- object V49
- object V5
- object V50
- object V6
- object V7
- object V8
- object V9
- object Version