architecture

Practical resources about architecture for software engineers.

184 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.

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 Pattern

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: Examples

Learn the Partial Class Pattern to split class definitions across multiple files. Examples in...

intermediate

Priority Queue Pattern

Process tasks based on priority rather than arrival order, ensuring high-priority work gets...

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 Pattern

Introduce a queue between task producers and consumers to smooth out traffic spikes, decouple...

advanced

Reactive Streams Pattern

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

intermediate

Repository Pattern

Abstract data access logic behind a clean interface. An architectural design pattern for testable,...

No results found.