Skip to content
#DistributedSystems

Designing Distributed Systems

#DistributedSystems #Architecture #SoftwareArchitecture #SystemDesign #Software #SoftwareDevelopment

The author of the book is a co-founder of kubernetes, so his experience in designing distributed systems is quite relevant:) The book seemed good, but at the same time too simple. But due to this, it is perfect for beginners entering the confusing path of distributed systems:)

The book consists of 3 parts: Single-node design patterns Design patterns of service systems Design patterns for batch computing systems

All patterns are given in the context of containers and their orchestration, the book contains practical examples, for which the installation of kubernetes and its primitives, such as pods, deployments, services, etc., are used. Towards the end of the book, you’ll try using helm to unfold etcd, kafka, and the like.

The first part examines the patterns: sidecar: for https, dynamic configuration and metrics Ambassador: to use sharded service and to split traffic for testing different versions adapters: monitoring, journaling

The second part deals with: Replication: for stateless service, sticky sessions, caching, ... Sharding: Consistent hash, sharding of replicated services, scatter-gather: distributed search by document n FaaS and events: advantages and disadvantages of FaaS, implementation of decorators on functions Ownership election: locs for distributed systems

The third part discusses the design patterns of batch computing systems:

  • queue-based systems
  • event-oriented batch processing Coordinated batch processing

#DistributedSystems #Architecture #SoftwareArchitecture #SystemDesign #Software #SoftwareDevelopment