Skip to content

[Feature] Delta-CRDT replication for DistributedData #444

Description

@pathosDev

Demand-driven — relevant once users run large CRDT states; scoped here so the design intent is on record.

Rationale

DistributedData gossip currently replicates full CRDT state. For large ORMap/ORSet instances (thousands of entries) that is O(state) bandwidth per gossip round. Delta-state CRDTs propagate only recent mutations (delta intervals) with causal delivery, cutting steady-state bandwidth dramatically — the standard approach in Akka Distributed Data.

Scope (sketch)

  • Delta-interval tracking per CRDT (mutations since last ack per peer), anti-entropy fallback to full-state when a peer is too far behind.
  • Causal delivery buffer per peer; delta support per CRDT type (start with ORSet/ORMap/GCounter, matrix documented).
  • Bench: gossip payload bytes/round before vs. after on a 10k-entry ORMap (extend the cluster benchmarks).

Documentation

Distributed-data docs: delta replication section (EN + DE); config reference (enable/disable, buffer sizes); CHANGELOG.

Acceptance

  • Convergence property tests still green (merge laws unaffected); payload-size bench shows the expected drop; mixed clusters (delta-capable + full-state) converge.

Non-goals

New CRDT types; cross-DC replication (#149).

Relates

Existing CRDT property tests; #149 (multi-DC). Improvement program M8 (demand-driven shelf).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority: lowNice-to-have / niche / demand-driven

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions