What I learned decomposing a field-service product into 14 NestJS services — service boundaries, a shared Zod contract layer, an auth gateway, and async messaging — without drowning in distributed-systems complexity.
Why an interconnected SaaS suite needed its own event backbone, and how I ran a self-hosted Kafka pipeline — topic design, consumer groups, idempotency, and the failure modes you only learn in production.