Design a Contact-Tracing / Disease-Spread Tracking System
Problem
Design a system to track the spread of a disease through a contact network and answer exposure queries.
Requirements
Functional:
- Ingest contact events between people
- Query who was exposed to an infected person within N hops / time window
- Update infection status
- Alert exposed individuals
Non-functional:
- Millions of people, billions of contact edges
- Correctness and fault tolerance first-class
- Privacy-preserving
Discussion points
- Graph model and storage (edges with timestamps)
- Bounded BFS for exposure within hops/time
- Scaling the graph (partitioning)
- Fault tolerance and consistency
- Privacy and access control
added …