The most expensive architecture decisions are the ones made too early. We've seen more startups die from premature microservices than from a monolith that grew too large.
Start with a well-structured modular monolith. Clear domain boundaries inside a single deployable give you most of the benefits of services with none of the distributed-systems tax.
Split along seams that actually hurt. When a module needs independent scaling, a different language, or a separate team's release cadence, that's your signal — not an architecture diagram from a conference talk.
Above all, optimize for change. The goal isn't the perfect architecture today; it's the architecture that's cheapest to evolve tomorrow.