lattice_registers

Last-writer-wins and multi-value CRDT registers for Gleam.

Use this package when replicas need to store a single logical value and resolve concurrent writes deterministically or explicitly expose conflicts.

Installation

gleam add lattice_registers

Quick example

import lattice_core/replica_id
import lattice_registers/lww_register
pub fn main() {
let node_a = replica_id.new("node-a")
let register =
lww_register.new("draft", 1, node_a)
|> lww_register.set("published", 2)
lww_register.value(register)
// -> "published"
}

Modules

ModulePurpose
lattice_registers/lww_registerLast-writer-wins register. Higher timestamps win; equal timestamps use replica ID tie-breaking.
lattice_registers/mv_registerMulti-value register. Concurrent writes are preserved as multiple values.

Notes

License

MIT