Stakeholder: Ad click producer, Aggregation info reader
The system should be able to support 11574 QPS, the peak estimation is about 5 times which is 57870 QPS.
Storage estimation: each click takes 0.1KB, so it is 100 GB per day, which is 3TB per month.
Aggregate info reviewer:
There are 2 different types of data need to be stored: The raw click event and the aggregated report.
Raw ad click event: The storage requirement of this system is heavy write, write is mostly append only.
Ad click aggregation: The aggregation data can be stored in an OLAP database to support analitical queries better.
There are some key components in the system:
Process raw event
Data aggregation: a separate process
Report query flow:
Try to discuss as many failure scenarios/bottlenecks as possible.
What are some future improvements you would make? How would you mitigate the failure scenario(s) you described above?