← Meta Interview Insights

Meta·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jun 2026

Summary

Meta system design round, one big question about building a price tracking and alerting service at scale. The kind of question where you think you know where to start and then realize there are like six different hard sub-problems hiding inside it.

Questions Asked (1)

Q1

Design a price tracking service similar to CamelCamelCamel that crawls Amazon product prices, stores historical price data, lets users view price history and all-time lows, and sends alerts when a product hits a user-defined target price. Cover data modeling, ingestion pipeline, storage, alert evaluation, and overall architecture.

System DesignData ModelingTechnical Trade-offs
Author's notes

I started with the data model which felt safe, but then the ingestion side caught me off guard.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale (e.g., number of products, crawl frequency, user base, alert latency). Then design a high-level architecture covering data ingestion, storage, querying, and alerting, and dive into data modeling and trade-offs for each component. Emphasize how you handle scale, reliability, and cost.

Pro tip: Discuss the trade-offs between crawl frequency and freshness versus cost and politeness, and propose a tiered crawling strategy based on product popularity. Also, mention how you would handle Amazon's anti-scraping measures and ensure data accuracy.

1. Clarify Requirements and Scale

Ask questions to understand the expected number of products, crawl frequency, user base, alert latency, and budget constraints. This will guide your design decisions.

2. High-Level Architecture

Outline the main components: crawler, ingestion pipeline, storage (for price history and metadata), query service, and alerting service. Explain how they interact.

3. Data Modeling and Storage

Design schemas for products, price history, users, and alerts. Choose appropriate storage solutions (e.g., time-series DB for prices, relational DB for users/alerts) and discuss indexing and partitioning.

4. Ingestion Pipeline and Crawling Strategy

Detail how to crawl Amazon efficiently: scheduling, rate limiting, handling failures, and extracting data. Discuss using a message queue to decouple crawling from processing.

5. Alert Evaluation and Notification

Explain how to evaluate alerts against incoming price data, handle user-defined targets, and send notifications (e.g., email, push) with low latency. Discuss scaling and avoiding duplicate alerts.

Key Points to Mention

  • Use of time-series database (e.g., Cassandra, InfluxDB) for price history due to write-heavy workload and efficient range queries.
  • Crawling strategy: politeness, rate limiting, distributed crawling, and handling anti-bot measures (e.g., rotating IPs, using headless browsers).
  • Data partitioning and indexing for fast queries on product price history and all-time lows.
  • Alert evaluation: stream processing (e.g., Kafka + Flink) to match price updates with user alerts in near real-time.
  • Scalability: sharding by product ID, caching frequently accessed data, and using CDN for static content.
  • Trade-offs: consistency vs. availability, cost of crawling vs. freshness, and storage optimization (e.g., downsampling old data).

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.