Pulling a service out of a monolith is a distributed systems problem plus a refactoring problem at the same time, and the refactoring is the part that determines…
A flag decouples deploying from releasing, which is genuinely valuable, and it also doubles the number of code paths that exist — permanently, unless somebody deletes it. Two…
The cheapest API version is the one you never create, and that is achievable for longer than most teams expect if every change is additive. Tightening validation is…
5.0 shipped in October with a log-structured type and consumer groups. A list has no acknowledgement, which is why a crashed consumer loses the message.
The argument about whether an Order has a delivery address or a billing address is usually two contexts insisting on one word, and the resolution is that they…
The naming decides the coupling. ReserveInventory names a recipient and expects an outcome; OrderPlaced names neither, so a second consumer can be added without touching the publisher. Past…