Distributed Application Architecture Patterns

6 Scalability Patterns

This chapter details patterns that help to scale and manage scalable systems – one of the fundamental driving forces behind distributed systems.

  1. Competing Consumers & Load Balancer in § 6.1 have differing implementations, but the same underlying structure and intent – to distribute work among multiple identical consumers

  2. Partitioning in § 6.2, also known as sharding, is a similar pattern, but with predetermined responsibilities for each participant, be it data or tasks

  3. Scatter–Gather in § 6.3 presents a common way to work with different forms of partitioning

  4. Externalised Configuration in § 6.4 deals with management of scaled systems

Other patterns that could be considered a part of this category include:

Notable omissions in this category due to the methodology described in § 1 include: