Full Stack Radio

A podcast for developers interested in building great software products. Hosted by Adam Wathan.

126: James Long - Building Distributed Local-First JavaScript Applications

In this episode, Adam talks to James Long (creator of Prettier) about building Actual, a local-first Electron application with no central database that syncs data peer-to-peer.

Topics include:

  • How do you keep data synchronized between two different clients when all of the data is stored locally instead of in the cloud?
  • Understanding conflict-free replicated data types and how they help when building distributed applications
  • Diving deep into how messages are replayed across clients when network access becomes available to achieve consistent state
  • Using a Merkle tree to efficiently compare the message store from two clients to know which messages need to be synchronized
  • Considerations you need to make when structuring your data to enable eventual consistency
  • What it might look like to move an app like Actual to an offline-first web app where you can't use things like SQLite