All patterns
Foundational
Client–Server (Three-Tier)
Clients talk to an application server backed by a database
Classic web and mobile pattern: presentation on the client, business logic on app servers, persistence in a relational or NoSQL database. Still the default for most products.
Startup scalelow complexity
Architecture diagram
High-level component relationships
Key components
Client
Browser, mobile app, or desktop UI
Application server
API, sessions, authorization, business rules
Database server
Persistent storage with backups and replication
Data flow
- Client authenticates and sends API requests
- Server validates, applies logic, queries database
- JSON/HTML response returned to client
Pros
- Well understood by every developer
- Huge ecosystem of frameworks and hosting
- Easy to cache, CDN static assets, scale app tier horizontally
Cons
- Chatty clients can cause over-fetching without BFF
- Session affinity complicates scaling unless stateless JWT
- Database often becomes the bottleneck
When to use
- Default choice for web and mobile products
- B2B SaaS, e-commerce, content platforms
When to avoid
- Offline-first with heavy local sync (consider different sync model)
- Peer-to-peer or edge-only workloads
Real-world examples
- Most REST/GraphQL SaaS
- Mobile apps + backend API
Related technologies
RESTGraphQLPostgreSQLRedis sessions