Reliable, scalable, and maintainable applications

Reliable, scalable, and maintainable applications

A data-intensive application is typically built from standard building blocks. They usually need to: * Store data (databases) * Speed up reads (caches) * Search data (search indexes) * Send a message to another process asynchronously (stream processing) * Periodically crunch data (batch processing)

Reliability

Typical expectations: * Application performs the function the user expected * Tolerate the user making mistakes * Its performance is good * The system prevents abuse