Archive for November 2022

System Design Interview - Chapter 2 - Back-to-the-envelope estimation

System Design Interview - Chapter 2 - Back-to-the-envelope estimation

Translations: RU

A very short Chapter 2 is about how to make rough estimates to start from the most important parts when designing the software.

Some concepts that EVERY software developer should know:

  • “Power of two”
  • Standard latency numbers! How fast is memory, how slow is disk, etc…
  • Availability numbers
  • What are key metrics you should think about

These concepts and numbers are disclosed in chapter two of the book:

“System Design Interview – An insider’s guide” by Alex Xu

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 16 Deploying Event-Driven Microservices

Building Event-Driven Microservices - Chapter 16 Deploying Event-Driven Microservices

Translations: RU

Principles of Microservice Deployment Differentes between Continuous integration (CI), Continuous delivery and Continuous deployment. Deployment patterns:

  • The Basic Full-Stop Deployment Pattern
  • The Rolling Update Pattern
  • The Breaking Schema Change Pattern: two options here - Eventual Migration and Synchronized Migration
  • The Blue-Green Deployment Pattern

All of these is disclosed in the Chapter 16 of the book:

“Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare

Sharing my mind map with all the details as usual:

Building Event-Driven Microservices - Chapter 15 - Testing Event Driven Microservices.

Building Event-Driven Microservices - Chapter 15 - Testing Event Driven Microservices.

Translations: RU

Testing event-driven solutions is a challenging task. It includes:

  • Common principles
  • Unit testing: stateless and stateful
  • Testing the Topology (I bet you didn’t do it! ;)
  • Testing Schema Evolution and Compatibility
  • Integration testing: Local, Remote and Hybrid - a set of common sense considerations not to forgot about
  • Choosing the testing strategy

All of these is disclosed in the Chapter 15 of the book:

“Building Event-Driven Microservices: Leveraging Organizational Data at Scale” by Adam Bellemare