If you're a team developing and maintaining a software [monolith], there's a good chance you're considering or planning a move to an architecture based around [microservices]. I'm not going to go into the various trade-offs involved in that decision in this article, because instead I want to focus on one specific technique that might help you make the transition.
It's relatively straightforward to build a system around microservices if you're starting from scratch, but it can be a lot harder to plan and manage a transition from an existing monolith. The kinds of changes involved can be substantial, and it's hard to keep a live system running smoothly while you fundamentally change how it works.
It's a big shift from an [ACID]-compliant database to a distributed architecture based on [eventual consistency], and keeping data consistent during a long migration, when different information is held in different parts of your system can be particul