Cloud Architecture Without the Over-Engineering
You probably don't need microservices, a service mesh, and multi-region active-active. Here's how to right-size architecture to the problem in front of you.
Complexity is a loan. You take it on hoping for future scale, and you pay interest every day in cognitive load, debugging time, and onboarding friction. Good architecture borrows only what the business will actually need.
Match the architecture to the load
A monolith on a managed platform will carry most products further than their founders expect. Reach for distributed systems when a specific, measured constraint forces your hand — not because a conference talk made it sound inevitable.
- Start with a modular monolith and a managed database.
- Extract a service only when a team or scaling boundary demands it.
- Make the seams clean so extraction is cheap later.
Design for the failure you'll actually have
Most outages are mundane: a bad deploy, a full disk, an expired certificate, a runaway query. Invest in observability, rollbacks, and backups before exotic multi-region failover.
Resilience is mostly the unglamorous stuff: health checks, timeouts, retries with backoff, and a deploy you can undo in one command.
Let the bill be a design review
Cloud cost is a lagging indicator of architecture. A surprising bill is usually telling you something true about your data flows. Read it like a code review.
Wes Goldwater
Director of Engineering at Prosigliere · writing the no-hype playbook for cloud & AI.
Keep reading
Your AI Policy Is a PDF. Make It Executable.
Acceptable-use PDFs don't govern agents — permission scopes, tool allowlists, hooks, and CI gates do. Move policy from the wiki into configuration where it's enforced by default.
You're Paying for the Same AI Five Times
GitHub, Atlassian, Slack, your IDE, and your cloud provider each sell you the same assistant. An overlap audit and a 'one primary tool per job' rule beats consolidating by inertia.