Search
⌘K
Common Problems

Price Tracking Service

ByEvan King·Published ·
medium

Try This Problem Yourself

Practice with guided hints and real-time feedback

Understanding the Problem

📈 What is CamelCamelCamel? CamelCamelCamel is a price tracking service that monitors Amazon product prices over time and alerts users when prices drop below their specified thresholds. It also has a popular Chrome extension with 1 million active users that displays price history directly on Amazon product pages, allowing for one-click subscription to price drop notifications without needing to leave the Amazon product page.

Functional Requirements

Core Requirements
  1. Users should be able to view price history for Amazon products (via website or Chrome extension)
  2. Users should be able to subscribe to price drop notifications with thresholds (via website or Chrome extension)
CamelCamelCamel has a popular Chrome extension with 1 million active users that displays price history directly on Amazon product pages, allowing for one-click subscription to price drop notifications without needing to leave the Amazon product page.
Below the line (out of scope):
  • Search and discover products on the platform
  • Price comparison across multiple retailers
  • Product reviews and ratings integration

Non-Functional Requirements

The scale and performance requirements for CamelCamelCamel are driven by Amazon's massive product catalog and the need for timely price notifications.
Core Requirements
  1. The system should prioritize availability over consistency (eventual consistency acceptable)
  2. The system should handle 500 million Amazon products at scale
  3. The system should provide price history queries with < 500ms latency
  4. The system should deliver price drop notifications within 1 hour of price change
Below the line (out of scope):
  • Strong consistency for price data
  • Real-time price updates (sub-minute)
We're building a system that must be "polite" to Amazon while providing valuable price tracking to millions of users. This creates interesting technical challenges around data collection, storage efficiency, and notification delivery that we'll address in our deep dives.
Here is how your requirements might look on the whiteboard:
CamelCamelCamel Requirements

The Set Up

Planning the Approach

Defining the Core Entities

The API

Data Flow

High-Level Design

1) Users should be able to view price history for Amazon products (via website or Chrome extension)

2) Users should be able to subscribe to price drop notifications with thresholds (via website or Chrome extension)

Potential Deep Dives

1) How do we efficiently discover and track 500 million Amazon products?

2) How do we handle potentially malicious price updates from Chrome extension users?

3) How do we efficiently process price changes and notify subscribed users?

4) How do we serve fast price history queries for chart generation?

Final Design

What is Expected at Each Level?

Mid-level

Senior

Staff+

Purchase Premium to Keep Reading

Unlock this article and so much more with Hello Interview Premium

Schedule a mock interview

Meet with a FAANG senior+ engineer or manager and learn exactly what it takes to get the job.

Schedule a Mock Interview