ReplicatedData

org.apache.pekko.cluster.ddata.ReplicatedData

Interface for implementing a state based convergent replicated data type (CvRDT).

ReplicatedData types must be serializable with an Akka Serializer. It is highly recommended to implement a serializer with Protobuf or similar. The built in data types are marked with ReplicatedDataSerialization and serialized with pekko.cluster.ddata.protobuf.ReplicatedDataSerializer.

Serialization of the data types are used in remote messages and also for creating message digests (SHA-1) to detect changes. Therefore it is important that the serialization produce the same bytes for the same content. For example sets and maps should be sorted deterministically in the serialization.

ReplicatedData types should be immutable, i.e. "modifying" methods should return a new instance.

Implement the additional methods of DeltaReplicatedData if it has support for delta-CRDT replication.

Attributes

Source
ReplicatedData.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class GCounter
class GSet[A]
class LWWMap[A, B]
class ORMap[A, B]
class ORMultiMap[A, B]
class ORSet[A]
class PNCounter
class PNCounterMap[A]
class Flag
class LWWRegister[A]
trait DeltaOp
trait DeltaOp
Show all

Members list

Type members

Types

type T <: ReplicatedData

The type of the concrete implementation, e.g. GSet[A]. To be specified by subclass.

The type of the concrete implementation, e.g. GSet[A]. To be specified by subclass.

Attributes

Source
ReplicatedData.scala

Value members

Abstract methods

def merge(that: T): T

Monotonic merge function.

Monotonic merge function.

Attributes

Source
ReplicatedData.scala