backend system design
Snapchat
Meta
Amazon

Snapchat System Design Interview: Price Tracking & Alerts

Topics:
Notification Systems
Task Scheduling
Caching
Roles:
Software Engineer
Backend Engineer
Site Reliability Engineer
Experience:
Mid Level
Senior
Staff

Question Description

Design a price-tracking and alerting system that monitors product prices across multiple online retailers and notifies users when prices drop below a user-set threshold.

You will be asked to cover end-to-end architecture: how you ingest and normalize product data (URLs or retailer IDs), how you schedule and execute periodic price checks at scale, how you store and cache price history, and how you reliably generate and deliver notifications (email, SMS, in-app). Expect to discuss trade-offs between real-time polling, batch scraping, and using third-party APIs, plus techniques for rate limiting, retry/backoff, and handling CAPTCHAs or changing HTML structures.

A typical interview flow: clarify functional and non-functional requirements, propose a high-level design (components and data flow), dive into one or two subsystems (scheduler/fetcher or notification delivery), and discuss scaling, fault tolerance, and cost-optimization.

Skills you should demonstrate: distributed systems thinking (scalability & reliability), task scheduling and queueing (cron vs work queues), caching strategies and cache invalidation, web scraping and data normalization, message-driven alert pipelines, and operational concerns (monitoring, SLAs, and cost controls). Be ready to sketch data models for tracked_items, user_preferences, price_history, and alert_logs, and to explain how you ensure timely, deduplicated, and correctly ordered alerts.

Common Follow-up Questions

  • How would you design the price-fetching pipeline to handle CAPTCHAs, JavaScript-rendered pages, and retailer rate limits while minimizing cost?
  • If you need sub-minute detection for a subset of hot items, how do you modify your scheduler and caching strategy to support near-real-time checks?
  • How do you ensure exactly-once (or at-least-once) delivery semantics for alerts across email, SMS, and in-app channels and handle retry/backoff logic?
  • What metrics and monitoring would you build (SLOs/SLIs) to detect missed alerts, stale price data, or failing scrapers, and how would you automate remediation?

Related Questions

1Design a scalable web crawler for e-commerce price data collection
2Design a notification service that supports multi-channel delivery and throttling
3How to implement a cost-effective task scheduler for millions of periodic jobs
4Design a cache and TTL strategy for frequently changing product metadata

Explore More Questions

Practice This Question with AI

Get real-time hints, detailed requirements, and insightful analysis of the question.

Snapchat Price Tracking System Design Interview Guide | Voker