architecture
Practical resources about architecture for software engineers.
181 results
Designing Systems That Scale
Software architecture is the art of making trade-offs. Every pattern — from microservices to event-driven systems — solves specific problems while introducing new constraints. Understanding these trade-offs is what makes an engineer an architect.
This hub collects guides and patterns for API gateways, load balancing, circuit breakers, sagas, and service meshes. Whether you are designing a new system or modernizing a legacy monolith, these resources provide the mental models and implementation details you need.
Pipes and Filters Pattern: Composable Data Pipelines
Chain processing steps with independent filters connected by pipes. A pattern for data...
Sidecar Pattern: Extend Services with Companion Containers
How to extend services with companion containers for cross-cutting concerns. Covers sidecar...
Strangler Fig: Gradually Replace Legacy by Intercepting
How to gradually replace a legacy system by intercepting routes and routing traffic to new...
Actor Model Pattern: Concurrency Without Shared State
Isolate state in actors that communicate only via messages. Each actor processes one message at a...
Async Generator Pattern for Lazy Streaming
Stream data lazily with async generators. Yield values one at a time as they become available,...
Back-Pressure Pattern
Stop fast producers from overwhelming slow consumers by pushing flow-control signals back through...
Backend for Frontend (BFF) Pattern
Give each client type its own backend that aggregates downstream services and shapes data to that...
Blackboard Pattern
A shared knowledge space where independent specialized modules collaborate to solve complex...
Blue-Green Deployment Pattern
Run two identical environments and switch traffic between them. Deploy to the idle environment,...
Business Delegate Pattern
Reduce coupling between presentation and business tiers by introducing an intermediary that handles...
Canary Release Pattern
Route a small percentage of traffic to the new version while the rest stays on stable. Monitor...
Claim Check Pattern
Store large payloads in external storage and pass a lightweight claim token through the message...
Compensating Transaction Pattern
Undo the effects of a completed transaction by executing a counter-operation, enabling eventual...
Content Delivery Network (CDN) Pattern
Distribute static and live content through geographically dispersed edge servers to reduce latency,...
Context Object Pattern: Examples
Reduce parameter bloat by passing a single context object through the call chain. Examples in...
CQRS Pattern
Separate read and write models to optimize each for its own workload — when CQRS pays off, when...
Database per Service Pattern
Give each microservice its own private database to ensure loose coupling, independent deployment,...
Dead Letter Channel Pattern
Route unprocessable messages to a separate dead letter queue for inspection and replay. Prevent...
Deployment Ring Pattern
Roll out changes progressively in rings of increasing size. Start with a small group, verify...
Distributed Lock Pattern with Redis, ZooKeeper, and etcd
Coordinate exclusive access to shared resources across distributed nodes using Redis, ZooKeeper, or...
No results found.