2 ms·
I get dizzy even trying to envision all the edge cases and challenges making an active - active sync between two different database engines, over what would be
by ThinkBeat 3y ago
I get dizzy even trying to envision all the edge cases and challenges
making an active - active sync between two different database engines,
over what would be tens of thousands (hundres?) of simultaneous connection to clients via a non-reliable, expect network disconnect, and reconnect from a different location from the same client.
If you have managed to pull this off in a way that reliably scales and reliably keeps all the data updated and uncorrupted I am mighty impressed.
My hat off for you folks.
How do you handle transactions and rollbacks?
- thruflo 3y agoHey, thanks :) and yup, lots of complexity and engineering. We're lucky because we're building on a lot of research and previous work. The model is Transactional Causal+ Consistency (TCC+). This has been formally proven to be the strongest possible consistency mode for an AP database system. We have a page on literature here https://electric-sql.com/docs/reference/literature https://electric-sql.com/docs/reference/literature, which includes the Cure paper http://ieeexplore.ieee.org/document/7536539/ http://ieeexplore.ieee.org/document/7536539/ on TCC+ and the highly available transactions paper https://dl.acm.org/doi/10.14778/2732232.2732237 https://dl.acm.org/doi/10.14778/2732232.2732237 Annette Bieniusa, Nuno Preguiça and Marc Shapiro from our team are authors of the Cure work (amongst many other things!). Re: rollbacks, our model is to provide finality of local-writes: https://electric-sql.com/docs/reference/architecture#local-writes https://electric-sql.com/docs/reference/architecture#local-w... -- which means you don't have to write rollback handlers.