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.
Event-Carried State Transfer Pattern
Replicate state changes across services by publishing events that carry the full updated entity...
Gatekeeper Pattern: Centralized Edge Security
Centralize authentication, rate limiting, and input sanitization at the system edge. Gatekeeper...
Geode Pattern: Partition Data Across Independent Nodes
Partition data so each node owns a non-overlapping shard with its own storage. 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
Centralize object lifecycle, lookup, and cleanup behind a dedicated manager class — from resource...
Marker Interface Pattern
Use empty interfaces as metadata tags: when an empty interface beats annotations, how Java's...
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 at...
MVC Pattern: Model, View, Controller Explained
Separate an application into Model, View, and Controller layers. When MVC pays off, when it's...
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...
No results found.