Home / Companies / Ditto / Blog / Post Details
Content Deep Dive

Testing CRDTs in Rust, from theory to practice

Blog post from Ditto

Post Details
Company
Date Published
Author
Russell Brown
Word Count
2,781
Language
English
Hacker News Points
-
Summary

Ditto employs stateful property-based testing to enhance the reliability of its Conflict-Free Replicated Data Types (CRDTs), crucial for distributed systems that manage conflicting updates in peer-to-peer applications. CRDTs allow Ditto's Document Database to seamlessly integrate concurrent changes, but the complexity inherent in their design poses challenges, exemplified by Ditto's effort to introduce a CRDT Map supporting both "Add Wins" and "Remove Wins" behaviors. Testing revealed unexpected behavior in CRDT implementations, highlighting the importance of property-based testing, which generates varied inputs to uncover discrepancies between models and systems under test. This approach exposed issues in an academic paper's optimized CRDT, which failed to meet essential CRDT properties like idempotency, commutativity, and associativity. The blog post emphasizes the significance of such testing methodologies in developing robust CRDTs and announces upcoming enhancements to the Ditto platform.