Type to search

System Design

Budding
·1 min read·Planted Feb 2026
On this page4 sections

Overview

System design principles and patterns for building scalable applications.

Key Concepts

Architecture Patterns

  • Microservices
  • Monolithic
  • Serverless
  • Event-driven

Scalability

  • Horizontal vs Vertical scaling
  • Load balancing
  • Caching strategies
  • Database sharding

Reliability

  • Fault tolerance
  • Redundancy
  • Monitoring
  • Disaster recovery
Closed permits calls until a failure threshold opens the circuit. Open rejects calls. After a reset timeout, half-open permits a trial; success returns to closed and failure returns to open and restarts the timeout.
Conceptual circuit-breaker state machine illustrating fault tolerance. Thresholds and retry timing depend on the system; the diagram supplies no measured performance claims or default settings. Original diagram based on Martin Fowler, Circuit Breaker.

Design Process

  1. Requirements gathering
  2. Capacity estimation
  3. System interface design
  4. Data model design
  5. High-level design
  6. Detailed design
  7. Scalability considerations

Further reading

  • Martin Fowler

    Circuit Breaker

    Follow a circuit breaker’s closed, open and trial states to understand how it contains repeated failures.