object Replicator
- Alphabetic
- By Inheritance
- Replicator
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
final
case class
Changed
[A <: ReplicatedData](key: Key[A])(data: A) extends ReplicatorMessage with Product with Serializable
The data value is retrieved with #get using the typed key.
The data value is retrieved with #get using the typed key.
- See also
- sealed trait Command [A <: ReplicatedData] extends AnyRef
- final case class DataDeleted [A <: ReplicatedData](key: Key[A]) extends RuntimeException with NoStackTrace with DeleteResponse[A] with Product with Serializable
-
final
case class
Delete
[A <: ReplicatedData](key: Key[A], consistency: WriteConsistency) extends Command[A] with Product with Serializable
Send this message to the local
Replicator
to delete a data value for the givenkey
.Send this message to the local
Replicator
to delete a data value for the givenkey
. TheReplicator
will reply with one of the DeleteResponse messages. - sealed trait DeleteResponse [A <: ReplicatedData] extends AnyRef
- final case class DeleteSuccess [A <: ReplicatedData](key: Key[A]) extends DeleteResponse[A] with Product with Serializable
-
final
case class
Get
[A <: ReplicatedData](key: Key[A], consistency: ReadConsistency, request: Option[Any] = None) extends Command[A] with ReplicatorMessage with Product with Serializable
Send this message to the local
Replicator
to retrieve a data value for the givenkey
.Send this message to the local
Replicator
to retrieve a data value for the givenkey
. TheReplicator
will reply with one of the GetResponse messages.The optional
request
context is included in the reply messages. This is a convenient way to pass contextual information (e.g. original sender) without having to useask
or maintain local correlation data structures. -
final
case class
GetFailure
[A <: ReplicatedData](key: Key[A], request: Option[Any]) extends GetResponse[A] with ReplicatorMessage with Product with Serializable
The Get request could not be fulfill according to the given consistency level and timeout.
- sealed abstract class GetResponse [A <: ReplicatedData] extends NoSerializationVerificationNeeded
-
final
case class
GetSuccess
[A <: ReplicatedData](key: Key[A], request: Option[Any])(data: A) extends GetResponse[A] with ReplicatorMessage with Product with Serializable
Reply from
Get
.Reply from
Get
. The data value is retrieved with #get using the typed key. -
final
case class
ModifyFailure
[A <: ReplicatedData](key: Key[A], errorMessage: String, cause: Throwable, request: Option[Any]) extends UpdateFailure[A] with Product with Serializable
If the
modify
function of the Update throws an exception the reply message will be thisModifyFailure
message.If the
modify
function of the Update throws an exception the reply message will be thisModifyFailure
message. The original exception is included ascause
. - final case class NotFound [A <: ReplicatedData](key: Key[A], request: Option[Any]) extends GetResponse[A] with ReplicatorMessage with Product with Serializable
- final case class ReadAll (timeout: FiniteDuration) extends ReadConsistency with Product with Serializable
- sealed trait ReadConsistency extends AnyRef
- final case class ReadFrom (n: Int, timeout: FiniteDuration) extends ReadConsistency with Product with Serializable
- final case class ReadMajority (timeout: FiniteDuration) extends ReadConsistency with Product with Serializable
-
final
case class
ReplicaCount
(n: Int) extends Product with Serializable
Current number of replicas.
Current number of replicas. Reply to
GetReplicaCount
. - final case class ReplicationDeleteFailure [A <: ReplicatedData](key: Key[A]) extends DeleteResponse[A] with Product with Serializable
-
trait
ReplicatorMessage
extends Serializable
Marker trait for remote messages serialized by akka.cluster.ddata.protobuf.ReplicatorMessageSerializer.
-
final
case class
StoreFailure
[A <: ReplicatedData](key: Key[A], request: Option[Any]) extends UpdateFailure[A] with DeleteResponse[A] with Product with Serializable
The local store or direct replication of the Update could not be fulfill according to the given consistency level due to durable store errors.
The local store or direct replication of the Update could not be fulfill according to the given consistency level due to durable store errors. This is only used for entries that have been configured to be durable.
The
Update
was still performed in memory locally and possibly replicated to some nodes, but it might not have been written to durable storage. It will eventually be disseminated to other replicas, unless the local replica crashes before it has been able to communicate with other replicas. -
final
case class
Subscribe
[A <: ReplicatedData](key: Key[A], subscriber: ActorRef) extends ReplicatorMessage with Product with Serializable
Register a subscriber that will be notified with a Changed message when the value of the given
key
is changed.Register a subscriber that will be notified with a Changed message when the value of the given
key
is changed. Current value is also sent as a Changed message to a new subscriber.Subscribers will be notified periodically with the configured
notify-subscribers-interval
, and it is also possible to send an explicitFlushChanges
message to theReplicator
to notify the subscribers immediately.The subscriber will automatically be unregistered if it is terminated.
If the key is deleted the subscriber is notified with a DataDeleted message.
-
final
case class
Unsubscribe
[A <: ReplicatedData](key: Key[A], subscriber: ActorRef) extends ReplicatorMessage with Product with Serializable
Unregister a subscriber.
Unregister a subscriber.
- See also
-
final
case class
Update
[A <: ReplicatedData](key: Key[A], writeConsistency: WriteConsistency, request: Option[Any])(modify: (Option[A]) ⇒ A) extends Command[A] with NoSerializationVerificationNeeded with Product with Serializable
Send this message to the local
Replicator
to update a data value for the givenkey
.Send this message to the local
Replicator
to update a data value for the givenkey
. TheReplicator
will reply with one of the UpdateResponse messages.Note that the companion object provides
apply
functions for convenient construction of this message.The current data value for the
key
is passed as parameter to themodify
function. It isNone
if there is no value for thekey
, and otherwiseSome(data)
. The function is supposed to return the new value of the data, which will then be replicated according to the givenwriteConsistency
.The
modify
function is called by theReplicator
actor and must therefore be a pure function that only uses the data parameter and stable fields from enclosing scope. It must for example not accesssender()
reference of an enclosing actor. - sealed abstract class UpdateFailure [A <: ReplicatedData] extends UpdateResponse[A]
- sealed abstract class UpdateResponse [A <: ReplicatedData] extends NoSerializationVerificationNeeded
- final case class UpdateSuccess [A <: ReplicatedData](key: Key[A], request: Option[Any]) extends UpdateResponse[A] with Product with Serializable
-
final
case class
UpdateTimeout
[A <: ReplicatedData](key: Key[A], request: Option[Any]) extends UpdateFailure[A] with Product with Serializable
The direct replication of the Update could not be fulfill according to the given consistency level and timeout.
The direct replication of the Update could not be fulfill according to the given consistency level and timeout.
The
Update
was still performed locally and possibly replicated to some nodes. It will eventually be disseminated to other replicas, unless the local replica crashes before it has been able to communicate with other replicas. - final case class WriteAll (timeout: FiniteDuration) extends WriteConsistency with Product with Serializable
- sealed trait WriteConsistency extends AnyRef
- final case class WriteMajority (timeout: FiniteDuration) extends WriteConsistency with Product with Serializable
- final case class WriteTo (n: Int, timeout: FiniteDuration) extends WriteConsistency with Product with Serializable
Value Members
-
def
flushChanges: FlushChanges.type
Java API: The
FlushChanges
instance -
def
getReplicaCount: GetReplicaCount.type
Java API: The
GetReplicaCount
instance -
def
props(settings: ReplicatorSettings): Props
Factory method for the akka.actor.Props of the Replicator actor.
-
def
readLocal: ReadLocal.type
Java API: The
ReadLocal
instance -
def
writeLocal: WriteLocal.type
Java API: The
WriteLocal
instance -
object
FlushChanges
extends Product with Serializable
Notify subscribers of changes now, otherwise they will be notified periodically with the configured
notify-subscribers-interval
. -
object
GetReplicaCount
extends Product with Serializable
Get current number of replicas, including the local replica.
Get current number of replicas, including the local replica. Will reply to sender with ReplicaCount.
- object ReadLocal extends ReadConsistency with Product with Serializable
- object Update extends Serializable
- object WriteLocal extends WriteConsistency with Product with Serializable