The following content is my own note from the book, "Designing Data-Intensive Applications". The writing is intended for people who want to dash through the book quickly.
Generally, data-intensive app require the following:
- database
- cache
- search index (search by keyword or filter)
- batch processing
- stream processing
To identify load parameters for scalability and performance, ask the following:
- request per second to a web server
- ratio of reads to writes in a database
- number of simultaneously active users (aka. peak time traffic)
- hit rate on a cache
- bottleneck dominated by a small number of extreme cases