Problems / Design a product, medium

Build a web crawler

Design a web crawler from an empty canvas: a URL frontier, a Bloom filter that drops seen URLs, polite fetcher workers, a parser and a page store, taking 1,500 discovered URLs a second.

Unlock it once for 15 credits; everything inside it is free (runs, changes, Submit, results, hints). Sign in with Google to start; new accounts get free credits.

What it must do

Scale

Request types to route: enqueue (75%, write), page (25%, read). Budget: $4,000 a month.

Estimate first

The test cases

You start from an empty canvas. When you run the tests, each one simulates your design with its own traffic and failures:

TestWhat it doesPasses when
Normal dayThe normal day: the traffic in the brief, nothing broken.Success ≥ 99.9%; p99 latency ≤ 100 ms (enqueue); p99 latency ≤ 100 ms (page)
A huge sitemap landsAt 5 s a big site’s sitemap is discovered: traffic triples for 8 s.Success ≥ 99%; p99 latency ≤ 150 ms (enqueue)
A server diesAt 4 s one server of the first app service on the request path dies for 10 s.Success ≥ 99%
Cache flushedAt 5 s the cache on the request path is emptied, as after a restart or a bad deploy.Success ≥ 99%; p99 latency ≤ 500 ms (page)
Budget: $4,000/monthThe normal day's design must cost at most $4,000 a month.Cost ≤ $4,000/month

Must include

More design a product problems