The foundational technology for Muse 2 is local-first sync, which draws from over a decade of computer science research on CRDTs. Mark, Adam Wiggins, and Adam Wulf get technical to describe the Muse sync technology architecture in detail. Topics include the difference between transactional, blob, and ephemeral data; the “atoms” concept inspired by Datomic; Protocol Buffers; and the user’s data as a bag of edits. Plus: why sync is a powerful substrate for end-user programming.
@MuseAppHQ
[email protected]
Show notes
Adam Wulf @adamwulf
Fantastical
Loose Leaf
Wulf’s iOS ink libraries
OpenGL
Bézier curves
Houston
Muse 2.0 launches May 24
Metamuse episode on local-first software
Core Data
Pocket
Clue, Wunderlist
CouchDB, Firebase
Adam’s writeup on sync technologies from 2014
Evernote
Pixelpusher
Slow Software
CRDTs, operational transform
Automerge
Actual Budget
last write wins
Actual open source
hybrid logical clock, vector clock
CloudKit
lazy loading
API versioning
Protocol Buffers
Wulf’s article on atoms
Datomic
“put a UUID and a version number on everything”
Swift property wrappers
functional reactive programming
Sourcery
Sentry
HDD indicator light
Muse job post for a local-first engineer
Local-first day at ECOOP 2022