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.

intermediate

Role Pattern

Assign dynamic roles to objects at runtime instead of hard-coding behavior in class hierarchies,...

advanced

Scheduler Agent Supervisor Pattern

Coordinate resilient job scheduling by separating scheduling logic from execution agents and adding...

intermediate

Sequential Convoy Pattern

Preserve message ordering for related messages in a distributed system by grouping them into...

advanced

Sharding Pattern

Split a large dataset into smaller partitions (shards) distributed across multiple servers to...

intermediate

Shed Load Pattern

Drop requests proactively under extreme load to protect the system. Reject excess traffic before it...

beginner

Static Content Hosting Pattern

Deploy static files to a dedicated content delivery network or object storage to offload origin...

intermediate

Thread Pool Pattern

Reuse a fixed set of threads for short-lived tasks instead of creating a new thread per task....

intermediate

Throttling Pattern

Limit the rate at which a system processes requests or consumes resources to prevent overload,...

intermediate

Twin Pattern

Provide an alternative to multiple inheritance by linking two separate classes through mutual...

intermediate

Type Object Pattern

Define game object types as runtime data rather than hard-coding them as classes, enabling...

intermediate

GraphQL Error Extension Pattern

Attach structured metadata to GraphQL errors using extension codes for predictable client-side...

advanced

GraphQL Interface Polymorphism Pattern

Model polymorphic types with GraphQL interfaces to share field contracts across different object...

advanced

GraphQL Schema Stitching Pattern

Merge multiple independent GraphQL schemas into a single unified schema that clients can query as...

intermediate

Bulkhead Pattern: Isolate Resources to Limit Blast Radius

How to isolate resources per service to limit blast radius. Covers thread pool isolation,...

advanced

Circuit Breaker Half-Open

How to test service recovery with half-open circuit breaker state transitions. Covers closed, open,...

advanced

Fallover: Switch to Standby on Primary Failure Detection

How to switch to a standby system on primary failure detection. Covers active-passive,...

intermediate

Graceful Shutdown: Drain In-Flight Requests Before Exit

How to drain in-flight requests before process exit. Covers signal handling, health check removal,...

intermediate

Token Bucket Rate Limiter: Smooth Traffic with Token Buckets

How to implement token bucket rate limiting for API protection. Covers bucket refill, burst...

intermediate

Retry with Jitter: Exponential Backoff and Random Jitter

How to retry failed operations with exponential backoff and random jitter. Covers full jitter,...

beginner

API Changelog Template

A template for documenting API changes including breaking changes, new features, deprecations, and...

No results found.