Client-server topology
corebeginnerA request from a browser or mobile app rarely hits a backend service directly. It usually passes through a load balancer, then a reverse proxy or API gateway, before reaching the service that actually handles it — each layer has a distinct job.
Think of it as
Think of visiting a large office building. You do not walk straight to the employee who handles your request. You go through the front door (load balancer, picking which entrance is least busy), the reception desk (API gateway, checking your ID and routing you to the right department), and sometimes an internal assistant (reverse proxy) before you reach the actual desk (backend service) that does the work.
What we're doing: Trace one request through every layer between a mobile app and the service that handles it.
- 3
- The load balancer only picks an instance — it does not know what an "order" is.
- 5
- The gateway is the layer that knows about auth and rate limits — the backend service does not repeat that logic.
- 8
- Internal traffic gets load-balanced too — this is not a client-facing-only concern.
Why this works: Naming each layer explicitly is what lets a design conversation say precisely where a responsibility (auth, routing, rate limiting) lives, rather than leaving it ambiguous which component owns it.
Treating "the backend" as a single box in a design doc
Wrong
Better
What you see: A design review cannot answer "where does auth happen" or "what happens if one instance dies" because the diagram collapsed four distinct components into one box.
Why: Each layer fails differently and owns a different responsibility. Collapsing them hides exactly the questions a system design review needs to ask.
- Client — browser or mobile app
- leads to Load balancer
- Load balancer — picks a healthy instance
- leads to API gateway
- API gateway — auth, routing, rate limit
- leads to Backend service
- Backend service — runs the business logic
Who sits between the client and the code that runs
Together
Remember: A request usually passes through a load balancer, an API gateway (or reverse proxy), and only then a backend service instance — four distinct jobs, not one box.
See also: api gateway responsibilities · l4 vs l7

