Enterprise Architecture
Patterns & Diagrams

Explore common software architecture patterns used in enterprise applications. These diagrams illustrate real-world system designs and can guide your architecture decisions.

Architecture Patterns by Category

Browse diagrams organized by architecture pattern type

Microservices

2 diagrams

E-Commerce Microservices

Microservices

Typical microservices architecture for an e-commerce platform with API Gateway, service mesh, and independent databases

flowchart TB
    subgraph ClientLayer["Client Layer"]
        Web[Web Browser]
        Mobile[Mobile App]
    end
    
    subgraph APIGateway["API Gateway"]
        GatewayNode[API Gateway]
    end
    
    subgraph Microservices["Microservices"]
        Auth[Auth Service]
        Product[Product Service]
        Order[Order Service]
        Payment[Payment Service]
        Inventory[Inventory Service]
        Notification[Notification Service]
    end
    
    subgraph DataLayer["Data Layer"]
        AuthDB[("Auth DB")]
        ProductDB[("Product DB")]
        OrderDB[("Order DB")]
        PaymentDB[("Payment DB")]
        InventoryDB[("Inventory DB")]
    end
    
    subgraph MessageQueue["Message Queue"]
        MsgQueue[Message Queue]
    end
    
    subgraph ExternalServices["External Services"]
        Stripe[Stripe API]
        Email[Email Service]
    end
    
    Web --> GatewayNode
    Mobile --> GatewayNode
    GatewayNode --> Auth
    GatewayNode --> Product
    GatewayNode --> Order
    GatewayNode --> Payment
    GatewayNode --> Inventory
    
    Auth --> AuthDB
    Product --> ProductDB
    Order --> OrderDB
    Payment --> PaymentDB
    Inventory --> InventoryDB
    
    Order --> MsgQueue
    Payment --> MsgQueue
    MsgQueue --> Notification
    Notification --> Email
    Payment --> Stripe

Kubernetes Microservices

Microservices

Microservices architecture deployed on Kubernetes with service mesh, ingress, and auto-scaling

flowchart TB
    subgraph Ingress["Ingress"]
        IngressCtrl[Ingress Controller]
    end
    
    subgraph Mesh["Service Mesh"]
        Istio[Istio Service Mesh]
    end
    
    subgraph Frontend["Frontend Namespace"]
        FrontendPod1[Frontend Pod 1]
        FrontendPod2[Frontend Pod 2]
        FrontendSvc[Frontend Service]
    end
    
    subgraph Backend["Backend Namespace"]
        AuthPod[Auth Service Pod]
        ApiPod[API Service Pod]
        WorkerPod[Worker Service Pod]
        BackendSvc[Backend Services]
    end
    
    subgraph Data["Data Namespace"]
        PostgresPod[("PostgreSQL Pod")]
        RedisPod[("Redis Pod")]
        MongoPod[("MongoDB Pod")]
    end
    
    subgraph External["External"]
        Users[Users]
        ExternalAPI[External APIs]
    end
    
    Users --> IngressCtrl
    IngressCtrl --> Istio
    Istio --> FrontendSvc
    FrontendSvc --> FrontendPod1
    FrontendSvc --> FrontendPod2
    FrontendPod1 --> BackendSvc
    FrontendPod2 --> BackendSvc
    BackendSvc --> AuthPod
    BackendSvc --> ApiPod
    BackendSvc --> WorkerPod
    AuthPod --> PostgresPod
    ApiPod --> MongoPod
    ApiPod --> RedisPod
    WorkerPod --> ExternalAPI

Monolithic

2 diagrams

Monolithic Architecture

Monolithic

Traditional monolithic application with single codebase, shared database, and vertical scaling

flowchart TB
    subgraph ClientLayer["Client Layer"]
        Users[Users]
    end
    
    subgraph LoadBalancer["Load Balancer"]
        LB[Load Balancer]
    end
    
    subgraph AppServers["Application Servers"]
        App1[Monolith App 1]
        App2[Monolith App 2]
        App3[Monolith App 3]
    end
    
    subgraph SharedDB["Shared Database"]
        Primary[("PostgreSQL Primary")]
        Replica[("PostgreSQL Replica")]
    end
    
    subgraph CacheLayer["Cache Layer"]
        Redis[("Redis Cache")]
    end
    
    subgraph FileStorage["File Storage"]
        S3[S3 Storage]
    end
    
    Users --> LB
    LB --> App1
    LB --> App2
    LB --> App3
    
    App1 --> Primary
    App2 --> Primary
    App3 --> Primary
    
    App1 --> Replica
    App2 --> Replica
    App3 --> Replica
    
    App1 --> Redis
    App2 --> Redis
    App3 --> Redis
    
    App1 --> S3
    App2 --> S3
    App3 --> S3

Three-Tier Architecture

Monolithic

Classic three-tier architecture separating presentation, business logic, and data layers

flowchart TB
    subgraph Presentation["Presentation Tier"]
        WebApp[Web Application]
        MobileApp[Mobile App]
    end
    
    subgraph Application["Application Tier"]
        APIServer[API Server]
        BusinessLogic[Business Logic]
        AuthService[Auth Service]
    end
    
    subgraph Data["Data Tier"]
        PrimaryDB[("Primary Database")]
        Cache[("Cache Layer")]
        FileStorage[("File Storage")]
    end
    
    subgraph External["External Services"]
        EmailSvc[Email Service]
        PaymentGW[Payment Gateway]
    end
    
    WebApp --> APIServer
    MobileApp --> APIServer
    APIServer --> BusinessLogic
    APIServer --> AuthService
    BusinessLogic --> PrimaryDB
    BusinessLogic --> Cache
    BusinessLogic --> FileStorage
    BusinessLogic --> EmailSvc
    BusinessLogic --> PaymentGW

Serverless

1 diagram

Serverless Architecture

Serverless

Event-driven serverless architecture using AWS Lambda, API Gateway, and managed services

flowchart TB
    subgraph Client["Client"]
        WebClient[Web/Mobile Client]
    end
    
    subgraph APIGW["API Gateway"]
        Gateway[API Gateway]
    end
    
    subgraph Functions["Serverless Functions"]
        AuthFn[Auth Lambda]
        ProcessFn[Process Lambda]
        NotifyFn[Notify Lambda]
    end
    
    subgraph Managed["Managed Services"]
        DynamoDB[("DynamoDB")]
        S3Storage[S3 Storage]
        SQS[SQS Queue]
        SES[Email Service]
    end
    
    subgraph Events["Event Sources"]
        EventBridge[EventBridge]
    end
    
    WebClient --> Gateway
    Gateway --> AuthFn
    AuthFn --> ProcessFn
    ProcessFn --> DynamoDB
    ProcessFn --> S3Storage
    ProcessFn --> SQS
    ProcessFn --> EventBridge
    EventBridge --> NotifyFn
    NotifyFn --> SES
    SQS --> ProcessFn

Event-Driven

2 diagrams

Event-Driven Architecture

Event-Driven

Event-driven microservices architecture with event bus, event sourcing, and CQRS patterns

flowchart TB
    subgraph APILayer["API Layer"]
        APIGateway[API Gateway]
    end
    
    subgraph CommandServices["Command Services"]
        UserSvc[User Service]
        OrderSvc[Order Service]
        PaymentSvc[Payment Service]
    end
    
    subgraph EventBus["Event Bus"]
        Bus[Event Bus]
    end
    
    subgraph QueryServices["Query Services"]
        ReadSvc[Read Service]
        AnalyticsSvc[Analytics Service]
    end
    
    subgraph EventStore["Event Store"]
        Store[("Event Store")]
    end
    
    subgraph ReadModels["Read Models"]
        ReadDB[("Read Database")]
        AnalyticsDB[("Analytics DB")]
    end
    
    APIGateway --> UserSvc
    APIGateway --> OrderSvc
    APIGateway --> PaymentSvc
    
    UserSvc --> Store
    OrderSvc --> Store
    PaymentSvc --> Store
    
    UserSvc --> Bus
    OrderSvc --> Bus
    PaymentSvc --> Bus
    
    Bus --> ReadSvc
    Bus --> AnalyticsSvc
    
    ReadSvc --> ReadDB
    AnalyticsSvc --> AnalyticsDB

Data Pipeline Architecture

Event-Driven

Modern data pipeline architecture with ETL, data lakes, and analytics

flowchart LR
    subgraph Sources["Data Sources"]
        Source1[Application DBs]
        Source2[APIs]
        Source3[Files]
    end
    
    subgraph Ingestion["Ingestion Layer"]
        Kafka[Kafka Streaming]
        Kinesis[Kinesis Streams]
    end
    
    subgraph Processing["Processing Layer"]
        Spark[Spark ETL]
        Lambda[Lambda Functions]
    end
    
    subgraph Storage["Storage Layer"]
        DataLake[("Data Lake")]
        Warehouse[("Data Warehouse")]
    end
    
    subgraph Analytics["Analytics Layer"]
        BI[BI Tools]
        ML[ML Models]
    end
    
    Source1 --> Kafka
    Source2 --> Kinesis
    Source3 --> Kafka
    
    Kafka --> Spark
    Kinesis --> Lambda
    Spark --> DataLake
    Lambda --> DataLake
    DataLake --> Warehouse
    Warehouse --> BI
    Warehouse --> ML

Hybrid Cloud

1 diagram

Hybrid Cloud Architecture

Hybrid Cloud

Hybrid architecture combining on-premises infrastructure with cloud services

flowchart TB
    subgraph OnPrem["On-Premises"]
        OnPremApp[On-Prem App Server]
        OnPremDB[("On-Prem Database")]
    end
    
    subgraph Public["Cloud - Public"]
        CloudApp[Cloud App]
        CloudDB[("Cloud Database")]
        CloudStorage[S3 Storage]
    end
    
    subgraph Private["Cloud - Private"]
        PrivateApp[Private Cloud App]
        PrivateDB[("Private Cloud DB")]
    end
    
    subgraph Integration["Integration Layer"]
        VPN[VPN Connection]
        API[API Gateway]
        CDN[CDN]
    end
    
    subgraph Users["Users"]
        EndUsers[End Users]
    end
    
    EndUsers --> CDN
    CDN --> API
    API --> CloudApp
    API --> OnPremApp
    API --> PrivateApp
    
    CloudApp --> CloudDB
    CloudApp --> CloudStorage
    OnPremApp --> OnPremDB
    PrivateApp --> PrivateDB
    
    OnPremApp -.->|VPN| CloudApp
    PrivateApp -.->|VPN| CloudApp