This is a masterclass in system design and scaling. I'm getting started in the local-first and sync engines world, and this is pure gold as far as learning goes. Incredible deep concepts explained in a way an engineer at every level can understand. Even code examples in the end! I'm blown away by this quality. Thanks for this content and please post more!
How does this not have more views!? Such an awesome talk - just watched Tuomas’ 2020 talk straight into this one (highly recommend) and his distillation of such complexity into easy to comprehend bits is incredible! To think I’ve been following react/nextjs drama when this exists…
This is incredibly interesting and an amazing piece of engineering. I'm not sure if many teams could into implementing something like this with other business needs stacking up.
By any chance do you guys use event sourcing in back-end? This feels a lot like event sourcing one-way data flow implemented for the front-end. I have implemented something very similar using MobX as well. VERY smart use of IndexDB and its offline capabilities. It is refreshing to see this being implemented at scale! Just signed up for your app's trial. Looking forward to taking it for a spin!
If a transaction in the queue is invalidated by a transaction of another user, what happens to other transactions on the same object in the queue of the first user? Do they get invalidated at the same time?
I think he touches on this when talking about optimistic updates. The client's transaction is pushed as a mutation to the GraphQL API. If the API returns an error, the transaction is deleted, the local change is reverted, and whatever is valid will eventually be streamed in as an update. From my understanding, they implement client-side logic to make sure that all updates to the same object are batched in a single transaction, so that you don't need to solve for what you're specifically describing.