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

  1. Graph model and storage (edges with timestamps)
  2. Bounded BFS for exposure within hops/time
  3. Scaling the graph (partitioning)
  4. Fault tolerance and consistency
  5. Privacy and access control
added …
LeaderboardSalaryAccount