I had system design round in which I probably did badly.
Question:
Design a system for aggregation of advertisement click events for Facebook Ads.
- Assume events are already in a Distributed message queue.
- Design at facebook scale.
- Query can come for number of click events for particular Ad in last N sec. Design for as much granularity (max 1 min).
- Events can come out of order and there can be outliers who arrive later than expected.
- Requirement to view both real time and archival information.
- How will you store the aggregated results for efficient querying ?
Can you please help as to how this question should be approached. Would appreciate a detailed answer.