01
Modular monolith first, services when teams match
We favor a modular monolith or a small number of well-bounded services until team topology justifies more deployables. Each module owns its schema and exposes explicit APIs—HTTP or events—with versioned contracts documented in the repo.
Premature microservices multiply failure modes: distributed transactions, partial deploys, and observability gaps—without the organizational scale to operate them.