Distributed state is so fundamentally complex that I think we actually need CRDTs (or something like them) to reason about it effectively. And certainly to build reliable systems. The abstraction of a single, global, logical truth is so nice and tidy and appealing, but it becomes so leaky that I think all successful systems for distributed state will abandon it beyond a certain scale.
Statecraft - Protocol and set of tools for interacting with data that changes over time.
Automerge in JS - JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.
roshi - Large-scale CRDT set implementation for timestamped events.
CRDT benchmarks - Collection of reproducible benchmarks.
pony-crdt - Delta-State Convergent Replicated Data Types (ẟ-CRDTs) for the Pony language.
Jylis - Distributed in-memory database for Conflict-free Replicated Data Types (CRDTs), built for speed, scalability, availability, and ease of use.
bft-crdts - Byzantine Fault Tolerant CRDT's and other Eventually Consistent Algorithms. In Rust.
syncpad - CRDT-based collaborative source code editor (featuring the Monaco editor).