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.
Gatekeeper Pattern: Centralized Edge Security
Centralize authentication, rate limiting, and input sanitization at the system edge. Gatekeeper...
Geode Pattern
Distribute data across nodes with partitioning so each node owns a shard. Horizontal scaling...
Graceful Degradation Pattern
Degrade functionality instead of failing when dependencies are unavailable. Serve partial results,...
Idempotent Consumer Pattern
Process messages from a queue exactly once regardless of duplicates by using idempotent operations,...
Inbox Pattern
Use a dedicated inbox table or queue to record incoming events or requests, ensuring reliable...
Intercepting Filter: Pluggable Request Pipelines
Compose cross-cutting concerns into a chain of pluggable filters that intercept requests and...
Lock-Free Queue Pattern
Build high-throughput queues using atomic operations instead of locks. Multiple threads can enqueue...
Manager Pattern
Encapsulate lifecycle, coordination, and access control for a set of related objects through a...
Marker Interface Pattern
Use empty interfaces as metadata tags to signal properties or capabilities at compile time and...
Materialized View Pattern
Precompute and store expensive query results in a read-optimized cache to avoid repeated costly...
Message Deduplication Pattern
Prevent duplicate processing by tracking message IDs with idempotency keys. Consumers check a store...
Message Deferral Pattern
Delay message processing to a scheduled time. Move messages that cannot be processed now to a...
Message Queue Load Leveling Pattern
Smooth traffic spikes by placing a queue between a producer and a consumer. The producer writes...
MVC Pattern
Separate application into Model, View, and Controller components. An architectural design pattern...
Partial Class Pattern
Split a single class across two or more files so generated and hand-written code can coexist...
Priority Queue Pattern: Schedule Tasks by Urgency
Use the Priority Queue pattern to process high-priority work first. See Python, Java, and...
Producer-Consumer Pattern
Decouple production and consumption with a shared queue. Producers generate items at their own...
Publish-Subscribe Pattern
Broadcast events to multiple independent subscribers. Publishers send messages to a topic without...
Queue-Based Load Leveling: Smooth Traffic Spikes
Use Queue-Based Load Leveling to decouple producers and consumers, absorb traffic spikes, and...
Reactive Streams Pattern
Process asynchronous data streams with backpressure. Subscribers request N items at a time,...
No results found.