Systems & architecture
- system-design
The Main Types of System Design (And When Each One Fits)
A map of the system design vocabulary—monolith, layered, client-server, microservices, event-driven, SOA, P2P, and serverless—and the tradeoff each one is actually solving.
Read the article - system-design
The CAP Theorem: The Tradeoff Every Distributed System Makes
Why consistency and availability can't both survive a network partition, what CP and AP actually mean in practice, and why partition tolerance was never really the choice.
Read the article - system-design
Use Messaging and Kafka When Work Must Survive the Request
Learn to decouple critical workflows using Kafka, focusing on the Outbox pattern, partition ordering, and idempotency to ensure reliable label printing and analytics.
Read the article - system-design
Use Redis Cache-Aside Without Serving Incorrect Data
A deep dive into the Cache-Aside pattern to manage cinema screening data while preventing stale reads and cache stampedes.
Read the article - architecture-boundaries
Choose Module Boundaries Before Choosing Microservices
A deep dive into cohesion, coupling, and the transition from modular monoliths to microservices using a travel booking scenario.
Read the article - system-design
Use Circuit Breakers to Contain Dependency Failures
Learn how to prevent cascading failures in distributed systems using the Circuit Breaker pattern to manage unstable dependencies.
Read the article - system-design
Use Consistent Hashing to Reduce Partition Movement
A deep dive into hash rings and virtual nodes to minimize cache misses during cluster scaling.
Read the article - system-design
Choose Rate-Limiting Algorithms for Bursts and Fairness
A technical guide on Token Bucket vs Leaky Bucket algorithms, burst calculations, and client-level fairness for a geocoding API.
Read the article - system-design
Scale Application Instances and Route Traffic with a Load Balancer
Learn how to scale a document-rendering service by externalizing state and choosing between L4/L7 routing algorithms.
Read the article