Patterns – High Availability for Application Architecture Design

Things to keep in Mind

  • This list is a starting point for those who seek to learn about High Availability Architecture Design
  • It is a work in progress and it may get updated from time to time
  • In some places are it is very high level. There are design patterns that are not mentioned here that may fall within another pattern mentioned here. For example, “queues” could fall under the “PUBLISH/SUBSCRIBE” pattern.

1 – Concepts

  • Redundancy
  • Horizontal Auto-scalling
  • Infrastructure as Code
  • Caching
  • Sharding
  • Idempotent Operations
  • Eventual Consistency

2 – Application Implementation

  • Stateless Applications / Web Tier
  • Backend / FrontEnd
  • Publish / Subscribe
  • Micro Services
  • Content Delivery Networks (CDN)
  • Command and Query Responsibility Segregation (CQRS)
  • Event Sourcing
  • Sidecar
  • Strangler

3 – Application Failure Handling

  • Single Point of Failure (Anti-pattern)
  • Timeouts
  • Intermittent and transient errors
  • Circuit Breaking
  • Service degradation & fallbacks
  • Backoff Algorithms
  • Rejection

4 – Operations

  • System Monitoring
  • Immutable Infrastructure
  • Database Replication
  • Distributed Tracing
  • Multiple Data Centers