CRDTResolver<T extends DatumEntityInterface> class
A resolver that use the entity's built-in merge logic.
This is specifically designed for entities with CRDT fields that handle their own merge logic, allowing for merge-less conflict resolution.
The entity must override merge. DatumEntityMixin.merge defaults to
=> other (take-remote); an entity that forgets the override silently
loses its concurrent local edits on every conflict. When that shape is
detected the resolution carries a warning message.
Deletion conflicts (one side missing) cannot run a CRDT merge — the content-preserving choice is made instead: the surviving copy wins. A remote deletion therefore does NOT delete the local CRDT document; the local copy is re-pushed so both sides converge on the content. Aborting here (the old behavior) left the same conflict re-firing on every sync cycle forever.
- Implemented types
Constructors
- CRDTResolver()
-
const
Properties
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
resolve(
{T? local, T? remote, required DatumConflictContext context}) → Future< DatumConflictResolution< T> > -
Resolves a conflict between a local and remote version of an entity.
override
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited