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

    HTTPS

    Clients

    App Server

    Database

    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

    1. Client authenticates and sends API requests
    2. Server validates, applies logic, queries database
    3. 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

    More in Foundational