Sloane is a professional programmer and cofounder of screen.garden. She is using her love of functional programming and Elixir to bring real-time collaboration to Obsidian users everywhere. Outside of her professional life she enjoys cooking, singing, and running tabletop role-playing games for her friends and family.
Level: Intermediate
Conflict-free Replicated Datatypes (CRDTs) allow for distributed, p2p-style workflows where users generate data without conflicts. At screen.garden we wrap Yjs, a CRDT, inside a NIF to push business logic down into clients. This pairs surprisingly well with the BEAM, as we can manage those CRDTs inside stateful processes to turn a fundamentally imperative data structure into a functional one. We can also embrace the BEAM’s model of “let it crash” by using the conflict-free part of CRDT to rehydrate state within the BEAM without concern for data corruption or incomplete client-server syncs. All of this allows for fine-grained sync between a server and many devices, without conflicts and without fear of downtime.
OBJECTIVES:
AUDIENCE: