DurableStore

An actor implementing the durable store for the Distributed Data Replicator has to implement the protocol with the messages defined here.

At startup the Replicator creates the durable store actor and sends the Load message to it. It must then reply with 0 or more LoadData messages followed by one LoadAllCompleted message to the sender (the Replicator).

If the LoadAll fails it can throw LoadFailed and the Replicator supervisor will stop itself and the durable store.

When the Replicator needs to store a value it sends a Store message to the durable store actor, which must then reply with the successMsg or failureMsg to the replyTo.

Source:
DurableStore.scala
class Object
trait Matchable
class Any

Type members

Classlikes

Wrapper class for serialization of a data value. The ReplicatorMessageSerializer will serialize/deserialize the wrapped ReplicatedData including its serializerId and manifest.

Wrapper class for serialization of a data value. The ReplicatorMessageSerializer will serialize/deserialize the wrapped ReplicatedData including its serializerId and manifest.

Source:
DurableStore.scala
case object LoadAll

Request to load all entries.

Request to load all entries.

It must reply with 0 or more LoadData messages followed by one LoadAllCompleted message to the sender (the Replicator).

If the LoadAll fails it can throw LoadFailed and the Replicator supervisor will stop itself and the durable store.

Source:
DurableStore.scala
final case class LoadData(data: Map[KeyId, DurableDataEnvelope])
class LoadFailed(message: String, cause: Throwable) extends RuntimeException
final case class Store(key: KeyId, data: DurableDataEnvelope, reply: Option[StoreReply])

Request to store an entry. It optionally contains a StoreReply, which should be used to signal success or failure of the operation to the contained replyTo actor.

Request to store an entry. It optionally contains a StoreReply, which should be used to signal success or failure of the operation to the contained replyTo actor.

Source:
DurableStore.scala
final case class StoreReply(successMsg: Any, failureMsg: Any, replyTo: ActorRef)