Design a Web Crawler — Hard System Design Problem