Diagramwise

Design a Real-time Recommendation System — System Design Interview Practice

Design a recommendation system that combines multiple modeling approaches and serves predictions with sub-100ms latency. Work through the requirements, architecture trade-offs, and an interactive design review.

What does the "Design a Real-time Recommendation System" problem ask you to design?

Design a recommendation system that combines multiple modeling approaches and serves predictions with sub-100ms latency. It is a practice challenge with Hard difficulty, about 60-90 minutes.

Concepts and architecture decisions to consider

  • mlConcept to explore
  • recommendation systemsConcept to explore
  • collaborative filteringConcept to explore

Interview prompt

Design combine streaming behavior signals with low-latency candidate and model serving so users can get recommendations using fresh activity reliably at scale.

  • Define the source of truth for event log and model registry and make retries idempotent.
  • Use bounded, partitioned state to meet 1M events per second and 500K requests per second and p95 <=100ms serving.
  • Separate the critical request path from stream features, candidate refresh, training, and experiments.
  • Explain consistency, failure recovery, authorization, observability, and a degraded mode.

Requirements and scale assumptions

  • Support the core workflow to get recommendations using fresh activity.
  • Expose status, results, and freshness appropriate to combine streaming behavior signals with low-latency candidate and model serving.
  • Support authorization, validation, updates, deletion, and recovery semantics.
  • Meet p95 <=100ms serving under normal load.
  • Scale to 1M events per second and 500K requests per second without a single hot key or unbounded synchronous work.
  • Do not lose committed state; make retries and duplicate events safe.
  • Degrade safely when downstream workers, caches, or external dependencies fail.
  • 1M events per second and 500K requests per second
  • Partition by the primary tenant, user, item, or geographic key and isolate hot partitions.
  • Keep serving state bounded; retain raw events or durable records for replay and auditing.
  • Peak scale: 1M events per second — Capacity assumption that drives partitioning and backpressure.
  • Latency target: p95 <=100ms serving — User-facing budget for the primary request or read path.
  • Durable boundary: Committed before async — The source of truth is event log and model registry.
  • Async boundary: At-least-once workers — Keep stream features, candidate refresh, training, and experiments off the synchronous path.

Key entities

  • DatasetVersiondatasetId, version, schemaHash, qualityStatus, lineage, createdAt

    Immutable real time recommendation system input version used for reproducible training, evaluation, or replay.

  • FeatureSnapshotentityId, featureSetVersion, eventTime, values, sourceWatermarks

    Point-in-time real time recommendation system features with source watermarks so online and offline values can be compared.

  • TrainingRunrunId, datasetVersion, codeVersion, metrics, artifactUri, status

    Audited real time recommendation system run that records data, code, dependency, and evaluation lineage.

  • ModelVersionmodelId, version, stage, schema, qualityGates, endpoint

    A promotable real time recommendation system model version with rollout state, contract, and rollback metadata.

Data flow

  1. 1. Register and validate training dataThe real time recommendation system gateway records an immutable dataset version, schema, lineage, quality status, and privacy disposition.
  2. 2. Build point-in-time featuresFeature workers join real time recommendation system inputs using event-time watermarks, prevent leakage, and publish the same feature contract for training and serving.
  3. 3. Train and evaluate asynchronouslyThe orchestrator schedules real time recommendation system runs with checkpointed artifacts, reproducible environments, and metrics tied to the exact input versions.
  4. 4. Gate and serve a model versionA registry compares real time recommendation system quality, bias, safety, and compatibility gates before canary or production rollout with an immediate rollback pointer.
  5. 5. Monitor drift and learn from feedbackOnline inference records latency, errors, drift, and delayed labels so real time recommendation system retraining is evidence-driven rather than triggered by guesswork.

Deep dives and trade-offs

  • Reproducibility and leakage preventionPin real time recommendation system data, feature, code, dependency, and model versions for every run. Use point-in-time joins and quarantine failed quality or privacy checks before training. Keep raw inputs and artifacts immutable so a result can be replayed after a dependency changes.
  • Safe promotion and serving contractsSeparate real time recommendation system model registration from deployment and require signed artifacts plus schema compatibility. Use shadow traffic, canaries, rollback pointers, and per-version latency/error budgets. Return model version and feature freshness so clients can explain or reproduce a prediction.
  • Drift, feedback, and costMeasure feature drift, prediction drift, label delay, and segment-level quality for real time recommendation system rather than only aggregate accuracy. Sample expensive inference and cap retraining concurrency with an explicit GPU or compute budget. Keep human corrections and delayed labels linked to the original prediction and model version.
  • Batch versus online featuresPrefer a shared feature contract with batch backfills and a low-latency online serving path for decisions that need freshness. Two independently defined transformations create training-serving skew and hard-to-debug regressions.
  • Synchronous versus asynchronous inferenceKeep interactive real time recommendation system inference synchronous within a strict budget and queue large or expensive jobs. A request path that waits for model loading, enrichment, or retraining turns downstream slowness into an outage.
  • Global model versus segment modelsStart with one versioned model and add segment-specific models only when quality or policy evidence justifies the operational cost. Many simultaneously active versions multiply monitoring, rollback, and data-lineage burden.

Frequently asked questions

What are the key requirements for "Design a Real-time Recommendation System"?

Key requirements include: Support the core workflow to get recommendations using fresh activity; Expose status, results, and freshness appropriate to combine streaming behavior signals with low-latency candidate and model serving; Support authorization, validation, updates, deletion, and recovery semantics.

What scale should I assume for "Design a Real-time Recommendation System"?

Plan for: 1M events per second and 500K requests per second; Partition by the primary tenant, user, item, or geographic key and isolate hot partitions; Keep serving state bounded; retain raw events or durable records for replay and auditing.

What are the main trade-offs in "Design a Real-time Recommendation System"?

Batch versus online features: Prefer a shared feature contract with batch backfills and a low-latency online serving path for decisions that need freshness. Synchronous versus asynchronous inference: Keep interactive real time recommendation system inference synchronous within a strict budget and queue large or expensive jobs. Global model versus segment models: Start with one versioned model and add segment-specific models only when quality or policy evidence justifies the operational cost.

What are the core entities in "Design a Real-time Recommendation System"?

The core entities are DatasetVersion, FeatureSnapshot, TrainingRun, ModelVersion.

What are common mistakes when designing "Design a Real-time Recommendation System"?

Training real time recommendation system on mutable data without recording a replayable dataset version; Serving features from a different transformation or time window than the training job used; Promoting a model on one offline metric without canary, safety, or segment-level checks.