StackPractices

architecture

Practical resources about architecture for software engineers.

186 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

Gatekeeper Pattern: Centralized Edge Security

Centralize authentication, rate limiting, and input sanitization at the system edge. Gatekeeper...

advanced

Geode Pattern

Distribute data across nodes with partitioning so each node owns a shard. Horizontal scaling...

intermediate

Graceful Degradation Pattern

Degrade functionality instead of failing when dependencies are unavailable. Serve partial results,...

intermediate

Idempotent Consumer Pattern

Process messages from a queue exactly once regardless of duplicates by using idempotent operations,...

intermediate

Inbox Pattern

Use a dedicated inbox table or queue to record incoming events or requests, ensuring reliable...

intermediate

Intercepting Filter: Pluggable Request Pipelines

Compose cross-cutting concerns into a chain of pluggable filters that intercept requests and...

advanced

Lock-Free Queue Pattern

Build high-throughput queues using atomic operations instead of locks. Multiple threads can enqueue...

beginner

Manager Pattern

Encapsulate lifecycle, coordination, and access control for a set of related objects through a...

beginner

Marker Interface Pattern

Use empty interfaces as metadata tags to signal properties or capabilities at compile time and...

intermediate

Materialized View Pattern

Precompute and store expensive query results in a read-optimized cache to avoid repeated costly...

intermediate

Message Deduplication Pattern

Prevent duplicate processing by tracking message IDs with idempotency keys. Consumers check a store...

intermediate

Message Deferral Pattern

Delay message processing to a scheduled time. Move messages that cannot be processed now to a...

intermediate

Message Queue Load Leveling Pattern

Smooth traffic spikes by placing a queue between a producer and a consumer. The producer writes...

intermediate

MVC Pattern

Separate application into Model, View, and Controller components. An architectural design pattern...

beginner

Partial Class Pattern

Split a single class across two or more files so generated and hand-written code can coexist...

intermediate

Priority Queue Pattern: Schedule Tasks by Urgency

Use the Priority Queue pattern to process high-priority work first. See Python, Java, and...

intermediate

Producer-Consumer Pattern

Decouple production and consumption with a shared queue. Producers generate items at their own...

intermediate

Publish-Subscribe Pattern

Broadcast events to multiple independent subscribers. Publishers send messages to a topic without...

intermediate

Queue-Based Load Leveling: Smooth Traffic Spikes

Use Queue-Based Load Leveling to decouple producers and consumers, absorb traffic spikes, and...

advanced

Reactive Streams Pattern

Process asynchronous data streams with backpressure. Subscribers request N items at a time,...

No results found.