Design a crawler that walks the web from a set of seed URLs, stores what it finds, and keeps going. Ranking and search are out of scope.
Requirements
- Fetch pages starting from seed URLs and follow links
- Never get stuck fetching the same page forever
- Do not overwhelm any single site
- Keep running across restarts
Scale
- Pages
- 1B per month
- Average page
- 100KB
- Politeness
- 1 request per second per host
- Workers
- as many as needed
Draw the design on the board, fill in Your answer, then submit.