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
MicroservicesTypical 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 --> StripeKubernetes Microservices
MicroservicesMicroservices 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 --> ExternalAPIMonolithic
2 diagrams
Monolithic Architecture
MonolithicTraditional 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 --> S3Three-Tier Architecture
MonolithicClassic 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 --> PaymentGWServerless
1 diagram
Serverless Architecture
ServerlessEvent-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 --> ProcessFnEvent-Driven
2 diagrams
Event-Driven Architecture
Event-DrivenEvent-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 --> AnalyticsDBData Pipeline Architecture
Event-DrivenModern 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 --> MLHybrid Cloud
1 diagram
Hybrid Cloud Architecture
Hybrid CloudHybrid 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