AWS Cloud Design Patterns

Pages

  • API Routing Hostname
    Explains the hostname routing pattern, which isolates API services by giving each one its own hostname, with typical use cases and trade-offs.
  • API Routing HTTP
    Explains the HTTP header routing pattern, where a request header selects the target service, action, version, or feature, along with its pros and cons.
  • API Routing Path
    Explains the path routing pattern, which groups APIs under one hostname and separates services by URI, with NGINX, API Gateway, and CloudFront implementations on AWS.
  • Circuit Breaker
    Describes the Circuit Breaker pattern, which stops a caller from repeatedly calling a failing or slow service, its three states, and how to build it on AWS.
  • Event Sourcing
    Describes the Event Sourcing pattern, which stores every state-changing event in an immutable event store and rebuilds state by replay, with challenges and AWS implementations.
  • Hexagonal Architecture
    Describes the Hexagonal Architecture (Ports and Adapters) pattern for loosely coupled, independently testable applications, including how to apply it on AWS Lambda.
  • Retry With Backoff
    Describes the Retry with Backoff pattern, which automatically retries operations that failed from transient errors using exponential backoff and jitter, with AWS implementations.
  • Saga Choreography
    Describes the Saga Choreography pattern, which keeps data consistent across services through event subscriptions instead of a central coordinator, with an AWS order-flow example.
  • Saga Orchestration
    Describes the Saga Orchestration pattern, which uses a central orchestrator such as AWS Step Functions to coordinate distributed transactions and compensating actions.
  • Strangler Fig
    Describes the Strangler Fig pattern for incrementally migrating a monolith to microservices behind a proxy layer, with AWS implementations, benefits, and challenges.
  • Transactional Outbox
    Describes the Transactional Outbox pattern, which solves the dual-write problem by saving events in the same transaction as the data, using an outbox table or change data capture.