Simple Components
- Stateless services
- Database reads with replication and caching
- Database writes with partitioning
- Data flow with queues
Advanced Components
- DNS
- Load Balancer
- Reverse Proxy
- Application layer scaling (service discovery)
- Persistent Storage
- Database
- Object Storage
- CDN (push versus pull)
- Caches
Additional Components
- Big data; batch and stream data processing
- Useful for data intensive or analytics systems
- Consistency via distributed transactions and event sourcing
- Particularly helpful financial systems
- Full text search index
- Long-term data storage; data warehouse