๐๐ฏ๐๐ซ๐ฒ ๐๐ฒ๐ฌ๐ญ๐๐ฆ ๐ข๐ฌ ๐ ๐๐จ๐
An idea on how to drastically ๐ซ๐๐๐ฎ๐๐ ๐๐จ๐ฆ๐ฉ๐ฅ๐๐ฑ๐ข๐ญ๐ฒ ๐๐ง๐ ๐๐จ๐จ๐ซ๐๐ข๐ง๐๐ญ๐ข๐จ๐ง in distributed apps.
A fun way to look at this is similar to the idea of Turning the Database Inside Out - like Turning the Microservice Inside Out.
The core idea is: Applications coordinate with many systems (DBs, queues, locks, schedulers, ...) which are all logs underneath. But each log independently maintains its ground truth. We lack common order and conditions.
By letting all those logs build on top of a common log, we can make a lot of distributed systems problems in apps and microservices virtually disappear.
But how is this practically usable, given that our DBs and queues aren't built like this? How do we strike a sweet-spot balance between this model with its great resilience and consistency, and maintaining healthy decoupling and separation of concerns?
We wrote about that design pattern, how it inspired our work on
@restatedev, and how you can adopt this for your architecture.
๐