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.
Role Pattern
Assign dynamic roles to objects at runtime instead of hard-coding behavior in class hierarchies,...
Scheduler Agent Supervisor Pattern
Coordinate resilient job scheduling by separating scheduling logic from execution agents and adding...
Sequential Convoy Pattern
Preserve message ordering for related messages in a distributed system by grouping them into...
Sharding Pattern
Split a large dataset into smaller partitions (shards) distributed across multiple servers to...
Shed Load Pattern
Drop requests proactively under extreme load to protect the system. Reject excess traffic before it...
Static Content Hosting Pattern
Deploy static files to a dedicated content delivery network or object storage to offload origin...
Thread Pool Pattern
Reuse a fixed set of threads for short-lived tasks instead of creating a new thread per task....
Throttling Pattern
Limit the rate at which a system processes requests or consumes resources to prevent overload,...
Twin Pattern
Provide an alternative to multiple inheritance by linking two separate classes through mutual...
Type Object Pattern
Define game object types as runtime data rather than hard-coding them as classes, enabling...
GraphQL Error Extension Pattern
Attach structured metadata to GraphQL errors using extension codes for predictable client-side...
GraphQL Interface Polymorphism Pattern
Model polymorphic types with GraphQL interfaces to share field contracts across different object...
GraphQL Schema Stitching Pattern
Merge multiple independent GraphQL schemas into a single unified schema that clients can query as...
Bulkhead Pattern: Isolate Resources to Limit Blast Radius
How to isolate resources per service to limit blast radius. Covers thread pool isolation,...
Circuit Breaker Half-Open
How to test service recovery with half-open circuit breaker state transitions. Covers closed, open,...
Fallover: Switch to Standby on Primary Failure Detection
How to switch to a standby system on primary failure detection. Covers active-passive,...
Graceful Shutdown: Drain In-Flight Requests Before Exit
How to drain in-flight requests before process exit. Covers signal handling, health check removal,...
Token Bucket Rate Limiter: Smooth Traffic with Token Buckets
How to implement token bucket rate limiting for API protection. Covers bucket refill, burst...
Retry with Jitter: Exponential Backoff and Random Jitter
How to retry failed operations with exponential backoff and random jitter. Covers full jitter,...
API Changelog Template
A template for documenting API changes including breaking changes, new features, deprecations, and...
No results found.