Scalability

System Design Interview - Chapter 1 - Scale from zero to millions of users

System Design Interview - Chapter 1 - Scale from zero to millions of users

Translations: RU

A great generic plan for scaling any app from zero to millions of users.

  • Single server setup
  • Selection and usage of database
  • Vertical scaling vs horizontal scaling approaches. And why you should prefer horizontal
  • Adding load balancer for horizontal scaling
  • Adding database replication for horizontal scaling
  • Adding cache
  • Adding CDN
  • Stateless vs Stateful architecture and using external state storage
  • Adding extra Data Centers
  • Adding Message queue
  • Adding Logging, Metrics, and Automation
  • Scaling database (sharding)
  • and futher steps…

All of these is carefully but briefly disclosed in the Chapter 1 of the book:

Building Event-Driven Microservices - Chapter 2 - Event Driven Microservice Fundamentals

Building Event-Driven Microservices - Chapter 2 - Event Driven Microservice Fundamentals

Translations: RU

Introduction into Event-driven microservice (EDM) architecture consists of the following topics:

  • two topologies
  • content of events
  • three types of events
  • table-stream duality
  • schemas for defining event data
  • single writer principle
  • features of event broker
  • event broker vs message broker
  • single source of truth principle
  • scaling using containers and VMs
  • microservice taxes that we should pay

These topics are disclosed in the Chapter 2 of the book we are currently studying:

Designing Data-Intensive Applications - Chapter 1 - Reliable, Scalable, and Maintainable Applications

Designing Data-Intensive Applications - Chapter 1 - Reliable, Scalable, and Maintainable Applications

Translations: RU

Earlier this year the book club of our company has studied excellent book:

Martin Kleppmann - Designing Data-Intensive Applications

This is the best book I have read about building complex scalable software systems. 💪

As usually (to better learn) I prepared an overview and mind-map.

Chapter 1:

  • Building blocks of the apps
  • What is Reliability, Scalability and Maintainability. Examples and definitions.
    • Faults and Failures
    • Performance, Load, Latency and Response Time
    • Operability, Simplicity, Evolvability
  • Why you should randomly kill your servers 😅
  • How Twitter delivers 12,000 tweets per second to 300,000 readers per second. (VERY interesting!)
  • How much money Amazon loses for each 100ms delay in their response time
  • How to quickly calculate percentiles for monitoring response time in PROD

Download full mind map (PDF)