StackPractices

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.

intermediate

Pipes and Filters Pattern: Composable Data Pipelines

Chain processing steps with independent filters connected by pipes. A pattern for data...

intermediate

Sidecar Pattern: Extend Services with Companion Containers

How to extend services with companion containers for cross-cutting concerns. Covers sidecar...

intermediate

Strangler Fig: Gradually Replace Legacy by Intercepting

How to gradually replace a legacy system by intercepting routes and routing traffic to new...

advanced

Actor Model Pattern: Concurrency Without Shared State

Isolate state in actors that communicate only via messages. Each actor processes one message at a...

intermediate

Async Generator Pattern for Lazy Streaming

Stream data lazily with async generators. Yield values one at a time as they become available,...

intermediate

Back-Pressure Pattern

Stop fast producers from overwhelming slow consumers by pushing flow-control signals back through...

intermediate

Backend for Frontend (BFF) Pattern

Give each client type its own backend that aggregates downstream services and shapes data to that...

advanced

Blackboard Pattern

A shared knowledge space where independent specialized modules collaborate to solve complex...

intermediate

Blue-Green Deployment Pattern

Run two identical environments and switch traffic between them. Deploy to the idle environment,...

intermediate

Business Delegate Pattern

Reduce coupling between presentation and business tiers by introducing an intermediary that handles...

intermediate

Canary Release Pattern

Route a small percentage of traffic to the new version while the rest stays on stable. Monitor...

intermediate

Claim Check Pattern

Store large payloads in external storage and pass a lightweight claim token through the message...

advanced

Compensating Transaction Pattern

Undo the effects of a completed transaction by executing a counter-operation, enabling eventual...

beginner

Content Delivery Network (CDN) Pattern

Distribute static and live content through geographically dispersed edge servers to reduce latency,...

intermediate

Context Object Pattern: Examples

Reduce parameter bloat by passing a single context object through the call chain. Examples in...

advanced

CQRS Pattern

Separate read and write models to optimize each for its own workload — when CQRS pays off, when...

intermediate

Database per Service Pattern

Give each microservice its own private database to ensure loose coupling, independent deployment,...

intermediate

Dead Letter Channel Pattern

Route unprocessable messages to a separate dead letter queue for inspection and replay. Prevent...

intermediate

Deployment Ring Pattern

Roll out changes progressively in rings of increasing size. Start with a small group, verify...

intermediate

Distributed Lock Pattern with Redis, ZooKeeper, and etcd

Coordinate exclusive access to shared resources across distributed nodes using Redis, ZooKeeper, or...

No results found.