Production lessons
The green dashboard lied to us
Every metric was within threshold. The service was down for half the users. Availability and health are not the same thing.
Writing
Architecture decisions, distributed systems, and production lessons examined through their trade-offs.
Every metric was within threshold. The service was down for half the users. Availability and health are not the same thing.
Transactional outbox is not ceremony — it is how you survive duplicate delivery and partial failures.
Unit tests tell you if a class works. Integration tests tell you if the system you designed can actually be assembled and run.
Messaging solves coupling in time, but it also introduces failure modes that many systems never needed.
MediatR handlers are coordination. When validation and invariants live there, the design looks clean until the rules need to be reused.