replikativ.crdt.ormap.realize

Functions to realize the value represented by a reduction over the
entries in OR-Map.

commit-history

(commit-history ormap {:keys [adds removals]})

new-conflicts

(new-conflicts ormap {:keys [adds removals], :as op})
Ormap already must have the op applied, returns a list of conflicts.

stream-into-identity!

(stream-into-identity! stage [u id] eval-fn ident & {:keys [applied-log conflict-cb]})
Streaming due to the OR-Map. During a conflict different replicas might see
different values for a key, but once you resolve the conflict for the key, all
replicas converge. You can provide a conflict callback which is called with a
map of {key #{assoc-trans1 assoc-trans2}}. You can use this for deterministic
conflict resolution. You should not resolve the conflicts differently on
different peers inifinitely often or the system will diverge. The stream is
not blocked by the conflict callback.


WIP, different streaming semantics are very well possible.