A service extracted for organisational reasons but reading and writing another service’s tables has all the costs of a network hop and none of the independence. It cannot…
A thin event carrying only an id forces every consumer to call back for the details, which is a synchronous dependency the event was meant to remove. A…
A package holding the shared domain model removes duplication and reintroduces exactly the coupling the split was for: a change to it requires every consumer to upgrade, which…
Choreography has each service react to events and know nothing about the whole; orchestration has one component call the others in order. The first is presented as the…
Centralised logs from four services are four streams in one place until something ties a single request together across them. That something has to be generated at the…
Six services that must be released together, share a database and call each other synchronously have every cost of distribution and none of the benefit. It is the…
Deciding services first and then discovering the relationships produces boundaries that cut through a transaction. Mapping the relationships first tells you which splits are cheap and which are…
The reporting code had one caller and a six-hour test run. Finding the seam, dealing with the shared schema honestly, and routing traffic gradually rather than switching.
Replacing a system incrementally requires something able to send some requests to the old implementation and some to the new. Without it, the migration is all-or-nothing however carefully…