Databricks·Software Engineer·Onsite - System Design / Architecture
- Design a bookstore price aggregation system where customers submit an ISBN, a max bid price, and a payment method. The system fans out to hundreds of partner bookstores, finds the lowest price, and either places the order automatically if it's within budget, returns the lowest price if not, or notifies the customer if the book is out of stock.
- Some downstream bookstores will time out or fail. How do you aggregate partial results, and do you use a circuit breaker here?
- How would you reduce the volume of calls to downstream bookstores, what caching strategy would you use, and how do you set TTL for something like book prices?
- Under high concurrent traffic for a popular ISBN, how do you prevent a thundering herd from hammering downstream bookstores all at once?
- Placing an order and charging the customer are two separate external calls. Which do you do first, and how do you handle a crash between the two steps? How do you prevent double-charging?
“The core design wasn't too bad.”