Cloud Architecture
Patterns

Scaling

Load Balancing

Pipes and Filters

Scatter Gather

Execution Orchestration

Choerography

Big Data Intensive

Map Reduce

Saga

Distributed Transactions

Standardize chunk / batch

Transactional Outbox

Materialize View

Read Performance

1 or 0

Save extra entries to

CQRS

CQRS + Materialized View

Event Sourcing

Write Intensive

Read Intensive

Every state / history

version control of data

Message broker for write contention

Snapshot

with CQRS

Sync from Write to Read

  • Message broker for extreme load

Video/Audio/Image, or all in one

Kayak

Event-driven, Message sent

Save data

Outbox

Duplicate events

At least one semantics

Order of events

Top courses by ratings

Product reviews

NoSQL

Course searching

Popular

Extensibility

Sidecar and Ambassador

Metrics, log event, registry, pull config

Location

Library within code base.

Services, overkill

Process.

Ambassador

Network. Retry, etc.

Anti-corruption adapter/layer

Intent

Migration between old and new systems

New and old systems permanently exist. separate them

function can be used to communicated between old and new

Backends for the frontends

Unique features of front ends call for customized backends

Reliability/Error Handling/Recovery

Throttling / RateLimit

Intent

High volume of request

Solution

429, too many requests

Queue up. Msg broker

API based

Client-based

Retry

503, service unavailable

Strategy

Back off, etc

Circuit breaker

Pessimistic. Costly

Half-open state

Solution

Log and play

To users

Fail silently

Best effort

Dead Letter Queue

Rolling deployment / Production Testing

Rolling, Popular

Blue/Green. Most popular

Canary

A/B Testing

Experimental. Will revert back to original version

Chaos Engineering

Intro

Types of problem

Functional, Unique

Non-functional. Common. Motivation

Constraints

Software Design Patterns vs System Architecture Patterns

Benefits

IaaS

Payment pricing

Tools, features, services

Limitations

Unreliable components

Cost and profitability