PracHub
QuestionsLearningGuidesInterview Prep
|Home/System Design/Meta

Design an e-commerce price tracking service

Last updated: Mar 29, 2026

Quick Overview

Design a scalable e-commerce price tracking backend with product tracking, price history, alerts, crawl scheduling, queues, idempotent notifications, caching, and storage cost controls.

  • hard
  • Meta
  • System Design
  • Software Engineer

Design an e-commerce price tracking service

Company: Meta

Role: Software Engineer

Category: System Design

Difficulty: hard

Interview Round: Onsite

Design a backend system for an e-commerce price-tracking service. Users can track products from a large online retailer, view historical prices, and receive alerts when prices drop below a threshold or by a configured percentage. ### Functional Requirements - Users can add a product to track by URL or product ID. - The system periodically fetches current product prices from a retailer API or scraper, depending on the assumption you choose. - The system stores timestamped price history for each tracked product. - Users can create alerts such as "notify me below $X" or "notify me after a Y% drop." - The system sends notifications when alert conditions are met. ### Non-Functional Requirements - Support millions of users and tens of millions of tracked products. - Price freshness can vary: popular products should update more frequently than long-tail products. - The service should be highly available and cost-conscious. - It is acceptable for alerts to be delayed, but duplicate or missed alerts should be minimized. ### Constraints & Assumptions - State whether you assume an official retailer API, web scraping, or both. - Respect rate limits, legal constraints, and retailer access policies. - Price history may become very large, so storage and downsampling need to be addressed. - Product metadata and price history have different access patterns and may use different storage systems. ### Clarifying Questions to Ask - Are we tracking one retailer or many retailers? - What freshness SLA is expected for popular versus long-tail products? - Which notification channels are required for v1? - How long must raw price history be retained? - Are users allowed to create many alerts for the same product? ### What a Strong Answer Covers - High-level architecture with API, product metadata, scheduler, fetch workers, price history storage, alert evaluation, notification, and monitoring. - A data model for products, users, subscriptions, price points, alerts, and notification logs. - A scalable scheduling strategy for fetching prices based on popularity and volatility. - Idempotent ingestion and alerting to handle retries safely. - Storage tradeoffs for high-resolution history versus downsampled aggregates. - Reliability, rate limiting, observability, and cost controls. ### Follow-up Questions - How would you design the dynamic crawl scheduler? - How would you prevent duplicate notifications after retries? - How would you store years of price history cheaply? - How would the design change for multiple retailers and regions?

Quick Answer: Design a scalable e-commerce price tracking backend with product tracking, price history, alerts, crawl scheduling, queues, idempotent notifications, caching, and storage cost controls.

Related Interview Questions

  • Design Top-K, Crawler, and Chess Systems - Meta (hard)
  • Design Search And Web Crawling Systems - Meta (medium)
  • Design an Instagram-Style Social Feed - Meta (medium)
  • Design an Online Game Leaderboard - Meta (hard)
  • Design an On-Demand Delivery Platform - Meta (medium)
|Home/System Design/Meta

Design an e-commerce price tracking service

Meta logo
Meta
Mar 23, 2025, 12:00 AM
hardSoftware EngineerOnsiteSystem Design
1
0

Design a backend system for an e-commerce price-tracking service. Users can track products from a large online retailer, view historical prices, and receive alerts when prices drop below a threshold or by a configured percentage.

Functional Requirements

  • Users can add a product to track by URL or product ID.
  • The system periodically fetches current product prices from a retailer API or scraper, depending on the assumption you choose.
  • The system stores timestamped price history for each tracked product.
  • Users can create alerts such as "notify me below $X" or "notify me after a Y% drop."
  • The system sends notifications when alert conditions are met.

Non-Functional Requirements

  • Support millions of users and tens of millions of tracked products.
  • Price freshness can vary: popular products should update more frequently than long-tail products.
  • The service should be highly available and cost-conscious.
  • It is acceptable for alerts to be delayed, but duplicate or missed alerts should be minimized.

Constraints & Assumptions

  • State whether you assume an official retailer API, web scraping, or both.
  • Respect rate limits, legal constraints, and retailer access policies.
  • Price history may become very large, so storage and downsampling need to be addressed.
  • Product metadata and price history have different access patterns and may use different storage systems.

Clarifying Questions to Ask Guidance

  • Are we tracking one retailer or many retailers?
  • What freshness SLA is expected for popular versus long-tail products?
  • Which notification channels are required for v1?
  • How long must raw price history be retained?
  • Are users allowed to create many alerts for the same product?

What a Strong Answer Covers Guidance

  • High-level architecture with API, product metadata, scheduler, fetch workers, price history storage, alert evaluation, notification, and monitoring.
  • A data model for products, users, subscriptions, price points, alerts, and notification logs.
  • A scalable scheduling strategy for fetching prices based on popularity and volatility.
  • Idempotent ingestion and alerting to handle retries safely.
  • Storage tradeoffs for high-resolution history versus downsampled aggregates.
  • Reliability, rate limiting, observability, and cost controls.

Follow-up Questions Guidance

  • How would you design the dynamic crawl scheduler?
  • How would you prevent duplicate notifications after retries?
  • How would you store years of price history cheaply?
  • How would the design change for multiple retailers and regions?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Meta•More Software Engineer•Meta Software Engineer•Meta System Design•Software Engineer System Design

Your design canvas — auto-saved

PracHub

Master your tech interviews with 9,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.