Simple Components

  1. Stateless services
  2. Database reads with replication and caching
  3. Database writes with partitioning
  4. Data flow with queues

Advanced Components

  1. DNS
  2. Load Balancer
  3. Reverse Proxy
  4. Application layer scaling (service discovery)
  5. Persistent Storage
    1. Database
    2. Object Storage
  6. CDN (push versus pull)
  7. Caches

Additional Components

  1. Big data; batch and stream data processing
    • Useful for data intensive or analytics systems
  2. Consistency via distributed transactions and event sourcing
    • Particularly helpful financial systems
  3. Full text search index
  4. Long-term data storage; data warehouse