In this episode of Databased, Tom Redman leads a discussion joined by Sujay Jayaker and James Cowling, two scientists behind Dropbox's synchronization protocol. They cover database synchronization in general, what it means alongside the local-first movement, and what went into designing sync at Convex.
Talking points:
- What is the local-first movement actually?
- What are the primary use-cases for offline sync/local-first?
- In a local-first world, how do you decide which version of state is correct?
- What are different strategies for reconciling state? Is there a right one?
- Is the local-first offline dream actually possible while sharing state externally?
- Where does opt-in local-first excel?
- What are the product and UX implications of inefficient sync protocols?
- What role do transactions play in all of this?
- Why clients directly talking to the database is a bad idea
- Finally, what is sync?