CRDT — Koder Conflict-free Replicated Data Types

  • Area: Data Platform
  • Path: data/crdt
  • Kind: Rust library — primitives for multi-cluster replication

Role in the stack

Provides low-level CRDT primitives (G-Counter, LWW-Register, OR-Set, Vector Clock) used by KDB and any Koder service that needs eventual-consistency guarantees across multiple data centers or edge nodes. Designed as a pure library — no server, no network layer. Consumers embed it directly.

Primary couplings

Consumer Relationship
data/kdb kdb-next uses CRDT primitives for multi-cluster state convergence
data/mq Message queue uses OR-Set for at-least-once delivery deduplication
Future distributed services Any Koder service needing multi-region replication

Interfaces

  • Rust crate koder-crdt — imported as workspace dependency
  • Implements serde::Serialize/Deserialize for Protobuf/JSON interchange via prost
  • All types implement Merge trait for commutative, associative, idempotent merges

Status

v0.1.0 — G-Counter, LWW-Register, OR-Set, Vector Clock implemented. In active use by kdb-next.