Fifteen years building and scaling distributed systems, across the industry's move from bare-metal servers and monoliths to cloud-native, Kubernetes and GitOps. I take on the work teams postpone: paying down technical debt, building deployment from nothing, and keeping systems running.
Reference architecture. Client code is under NDA, so this page describes the design and the reasoning behind it rather than a specific deployment.
Extracting services from a monolith while it keeps serving production traffic. The boundary that matters is data ownership: two components that write the same table are one service pretending to be two, no matter how the directories are arranged.
A gateway routes each extracted capability to the new service while the monolith remains the fallback, so any extraction can be reversed with a routing rule. Nothing about this requires a feature freeze, which is the only reason a migration like this ever finishes.