How software works · Guide for product managers

System design for product managers

Architecture discussions can feel like a different language — queues, caches, replicas, services. You do not need to design systems yourself, but you do need to understand what each building block buys, what it costs, and which product requirements drive those choices. That is what this guide covers.

Guide 5 of 10 in the technical PM path

12 min read · Updated · By the TechPMer team

Why a PM should care

Architecture is where product requirements turn into cost, speed and risk:

Start from requirements, not technology

Good system design starts with questions a PM can answer:

Question Why it matters
How many users, and how many at the same time? Drives scaling, hosting and database choices
How fast must it feel? Sets latency targets and caching needs
How fresh must data be? Real-time, a few seconds late, or daily? Very different designs
What happens if it is down for an hour? Sets reliability targets and redundancy (and cost)
How much data, growing how fast? Storage, indexes, archiving
Where may data live, and who may see it? Compliance, regions, access control

Numbers matter. "Fast" and "scalable" mean nothing; "search results under 500 ms for 10,000 daily users" is something engineers can design for.

The building blocks

Clients, servers and the load balancer

Users' browsers and apps (clients) send requests to servers. When one server is not enough, a load balancer spreads requests across several identical servers. This is horizontal scaling — adding more machines — as opposed to vertical scaling, using a bigger machine.

Databases, replicas and sharding

The database is usually the hardest part to scale. Common steps, roughly in order: better indexes and queries; read replicas (copies that serve reads); caching; and eventually sharding (splitting data across databases, for example by customer). Each step adds complexity, so teams take them only when needed.

Caching

A cache stores the result of expensive work so it can be reused — in the browser, on a CDN, or in a fast in-memory store such as Redis. Caching makes things fast and cheap, and introduces the classic problem: stale data. "Why does the dashboard still show the old number?" is often a caching question. Product input: how stale is acceptable for each screen?

CDN

A content delivery network keeps copies of static files (images, scripts, sometimes whole pages) on servers around the world, close to users. It is one of the cheapest big performance wins for global products.

Queues and background jobs

Some work should not happen while the user waits: sending emails, generating reports, processing uploads, calling slow AI models. A queue holds these tasks and workers process them in the background. The product consequence: the result arrives later, so you need states like "processing…", notifications, and a plan for failures and retries.

Services and APIs

Parts of the system talk to each other through APIs. Third-party services — payments, email, search, AI — are also parts of your architecture, with their own limits, costs and outages. See APIs for product managers.

Monolith, modular monolith or microservices?

Style What it is Good for Costs
Monolith One application, one deployment Small teams, early products, fast iteration Can get tangled as it grows
Modular monolith One deployment, clearly separated modules inside Most growing products Needs discipline to keep boundaries
Microservices Many small services deployed independently Large organisations with many teams Network failures, monitoring, data consistency, much more operational work

The common mistake is adopting microservices too early because large tech companies use them. For most products, a well-structured monolith is faster to build, cheaper to run and easier to change. Microservices mainly solve an organisational problem — many teams needing to ship independently.

Serverless

Serverless platforms run your code on demand without you managing servers, and charge per use. They are excellent for spiky or low traffic and small teams. Trade-offs include cold starts (a slow first request), time limits per request, and costs that can grow unexpectedly at high volume.

Reliability and failure

Everything fails eventually — servers, networks, third-party APIs. Reliable systems plan for it:

Uptime targets have real cost. 99.9% allows about 8.8 hours of downtime a year; 99.99% allows about 53 minutes — and usually costs far more to achieve. Choose deliberately.

Consistency trade-offs

In distributed systems you often trade perfect consistency for speed or availability. "Eventually consistent" means different parts of the system may briefly disagree — a like count that updates a second later. That is fine for likes and not fine for bank balances. Deciding which data needs strict consistency is partly a product decision.

Technical debt

Technical debt is the future cost of shortcuts taken today. Some is deliberate and healthy — shipping an MVP fast. It becomes a problem when nobody tracks it and every new feature pays "interest" in slower delivery and more bugs. Useful PM habits: ask engineers to name the debt a shortcut creates, keep a visible list, and reserve regular capacity to pay it down.

What engineers may tell you

Questions a good technical PM asks

  1. Which of our requirements is driving this design choice?
  2. What is the simplest design that meets the requirement for the next 12 months?
  3. What happens when this dependency is slow or down?
  4. How stale can this data be?
  5. What will this cost to run at 10× today's usage?
  6. What debt are we taking on, and when would we pay it back?

Red flags

System design with AI coding agents

AI agents will happily generate a complex architecture if you ask for "a scalable, production-grade system". For most projects, ask instead for the simplest architecture that meets explicit requirements, and make the agent explain its trade-offs:

Propose an architecture for this app. Requirements: ~1,000 users, pages under 1 s,
data may be up to 1 minute stale on the dashboard, emails can be sent async.
Prefer the simplest option (one app + managed database + background job).
List the trade-offs and what would need to change at 50× the users.

Try it yourself

Pick one feature you know well and sketch it as boxes and arrows: client, server, database, any third-party services, any background jobs. Then mark where it would break first if usage grew ten times. Bring the sketch to your next conversation with engineers — it is a much better starting point than "is it scalable?".

In the TechPMer course, week 4 (“Choosing the Stack — SPA, SSR, SEO and Frameworks”) applies these trade-offs to your own project before you build it.

Start with week 1 — free

No credit card. Open the first week as a guest, create a free account to save progress and unlock week 2 and the AI mentor.

Start learning Compare plans