kofre.dotted

package kofre.dotted

Members list

Concise view

Type members

Classlikes

case class DotFun[A](repr: Map[Dot, A])

The context describes dots that have been seen. The store describes which value is associated for a given dot. Dots that are removed from the store are considered deleted. All others are merged as for normal maps.

The context describes dots that have been seen. The store describes which value is associated for a given dot. Dots that are removed from the store are considered deleted. All others are merged as for normal maps.

The delta CRDT paper calls this a DotFun

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object DotFun

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
DotFun.type
case class DotMap[K, V](repr: Map[K, V])

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object DotMap

DotMap is a dot store implementation that maps keys of an arbitrary type K to values of a dot store type V. See ObserveRemoveMap for a usage example.

DotMap is a dot store implementation that maps keys of an arbitrary type K to values of a dot store type V. See ObserveRemoveMap for a usage example.

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
DotMap.type
case class DotSet(repr: Dots)

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object DotSet

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
DotSet.type
case class Dotted[A](store: A, context: Dots)

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
object Dotted

Implicit aliases in companion object for search path

Implicit aliases in companion object for search path

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
Dotted.type

DecomposableDotStore is the typeclass trait for dot stores, data structures that are part of causal CRDTs and make use of dots to track time.

DecomposableDotStore is the typeclass trait for dot stores, data structures that are part of causal CRDTs and make use of dots to track time.

Attributes

Companion:
object
Graph
Supertypes
trait DottedLattice[A]
trait Lattice[Dotted[A]]
class Object
trait Matchable
class Any
Known subtypes

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
trait DottedLattice[A] extends Lattice[Dotted[A]]

The delta CRDT paper introduces a lot of individual abstractions that all do a lot of cool stuff, but often not separated into their pieces. This is one of those pieces systematically handling removals based on metadata.

The delta CRDT paper introduces a lot of individual abstractions that all do a lot of cool stuff, but often not separated into their pieces. This is one of those pieces systematically handling removals based on metadata.

The context encodes dots that have been seen. The store of type A is assumed to be something that stores individual information per dot. We represent removals as context that contains a dot, but a store that no longer contains the dot. Thus, when merging the abstract logic is somewhat along the lines of: Both contain the (dot, value) pair? => merge value recursively. Only one contains the dot in the context? => keep that value. Both contain the dot, but at least one has no matching value? => remove all values for that dot.

Separating into a mergePartial allows extracting the context into the outermost layer reducing metadata overhead.

Attributes

Graph
Supertypes
trait Lattice[Dotted[A]]
class Object
trait Matchable
class Any
Known subtypes
trait HasDots[A]

See: Dot stores in delta state replicated data types

See: Dot stores in delta state replicated data types

But here, a dot store is something that can be seen as a Dots

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object hasDotsEWF.type
object hasDots.type
object HasDots

Attributes

Companion:
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
HasDots.type