System Design Notes
  • The Art of Scalable Systems: Designing for Success
  • BASICS
    • Key Characteristics of Distributed Systems
    • DNS
    • Load Balancer
    • API Gateway
    • Caching
    • Message Queues
    • Proxies
    • Databases
    • ACID
    • CAP Theorem
    • PACEL Theorem
  • System Design patterns
    • Bloom filters
    • Consistent hashing
    • Quorum/Consensus
    • Leader and Follower
    • Write-ahead Log
    • Segmented Log
    • High-Water Mark
    • Locking Lease
    • Checksum
    • Vector Clocks
    • Liveness
      • Heartbeat
      • Gossip Protocol
      • Phi Accrual Failure Detection
    • Split Brain with Generation Clock
    • Split Brain with Fencing
    • Resyncing Nodes
      • Read Repair
      • Merkle trees
      • Hinted Handoff
  • DATA SYNCHRONISATION PATTERNS
    • Two-phase commit (2pc) Pattern
    • CQRS
    • Saga
    • Transactional outbox
    • Change Data Capture (CDC)
  • Monolith Decomposition Patterns
    • Monolith vs Microservices
    • Motivation
    • The Strangler Fig Migration Pattern
    • Domain-Driven Design
    • Other Approaches
  • WHEN IN PRODUCTION
    • Metrics
  • SD INTERVIEWS
    • System Design Interview Template
  • REAL WORLD SCENARIOS
    • Design a Distributed Message Queue & Event Streaming Platform
  • 💰Payments Services
    • Parties: Acquirer, Issuer
    • Events: Chargebacks, Reversals
  • 🛣️Infrastructure
    • K8S - ClusterIP vs NodePort vs LoadBalancer
Powered by GitBook
On this page

Was this helpful?

  1. Monolith Decomposition Patterns

Monolith vs Microservices

Monolith:

  • a change in one of the modules can only be brought into production by bringing a new version of the entire application

Microservices:

  • independently deployable modules

  • eases the scalability of development

  • minimizes the team coordination effort required for large projects

  • easier to maintain or replace a microservice

PreviousChange Data Capture (CDC)NextMotivation

Last updated 2 years ago

Was this helpful?