1.4 KiB
12. Separate service for Crawler
Date: 2021-10-18
Status
Accepted
Context
The Auction House Discovery Crawler (for simplicity referred to as the Crawler) continuously crawls external auction houses that we already know about to try and discover new auction houses. It maintains the information we have about other auction houses and notifies our Action House when it has discovered new information. The Crawler can either be a part of the Auction House service or be a standalone service.
Decision
The Crawler will be implemented as a standalone service.
The most important reason for this is that it has different responsibilities to the Auction House. The Crawler has to continuously crawl for new information while the Auction House only needs to launch auctions for internal tasks and bid on external auctions.
Additionally, the services might have to scale differently depending on how rapidly we want to crawl new auction house information.
Consequences
We will have to duplicate some code and data as the auction house information will be duplicated across both services (although the business logic for updating the information based on the timestamp will solely reside in the Crawler).
There will be an added latency to the communication between the two domains. However, since this information should not be overly time sensitive (a few ms should not matter), this should not impact overall system performance.