|Alexander Songe 21b2710b1b Merge pull request #4 from frmendes/master||2 years ago|
|config||4 years ago|
|lib||2 years ago|
|test||2 years ago|
|.gitignore||4 years ago|
|.travis.yml||4 years ago|
|LICENSE||4 years ago|
|README.md||4 years ago|
|coveralls.json||4 years ago|
|mix.exs||4 years ago|
|mix.lock||4 years ago|
Loom is a set of basic CRDT's that are designed to be composable and extensible. We include support for delta-CRDT's (δ-CRDT's) where it makes sense.
In order to combat issues with large objects, δ-CRDT's are supported for some datatypes. You can extract deltas from delta-CRDT's, and periodically clear them out from your datastructures to reduce memory constraints.
Conflict-free, Coordination-free, Commutative, or Convergent datatypes, CRDT's are usually formally described as "join semi-lattices". Mathematical jargon aside, CRDT's track causality for modifications to your data. Because of this, time becomes less relevant, and coordination becomes unnecessary to get accurate values for your data.
I will have a simple explanation here for a basic gcounter and a pncounter.
For now, I can simply point you to the GCounter code in here.