Scalability Patterns

Courtesy: HighScalability.com

Srinath Perera has put together a strong list of architecture patterns based on three meta patterns:  distribution, caching, and asynchronous processing. He contends these three are the primal patterns and the following patterns are but different combinations:

  1. LB (Load Balancers) + Shared nothing Units. Units that do not share anything with each other fronted with a load balancer that routes incoming messages to a unit based on some criteria.
  2. LB + Stateless Nodes + Scalable Storage. Several stateless nodes talking to a scalable storage, and a load balancer distributes load among the nodes.
  3. Peer to Peer Architectures (Distributed Hash Table (DHT) and Content Addressable Networks (CAN)). Algorithm for scaling up logarithmically.
  4. Distributed Queues. Queue implementation (FIFO delivery) implemented as a network service.
  5. Publish/Subscribe Paradigm. Network publish subscribe brokers that route messages to each other.
  6. Gossip and Nature-inspired Architectures. Each node randomly pick and exchange information with follow nodes.
  7. Map Reduce/ Data flows. Scalable pattern to describe and execute Jobs.
  8. Tree of responsibility. Break the problem down recursively and assign to a tree, each parent node delegating work to children nodes.
  9. Stream processing. Process data streams, data that is keeps coming.
  10. Scalable Storages. Ranges from Databases, NoSQL storages, Service Registries, to File systems.

Please read the original article, List of Known Scalable Architecture Templates, for more details.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s