Design a Deduplicated Personalized News Feed

Quick Overview

Design a personalized news feed that groups cross-publisher coverage into story clusters without losing source diversity or freshness.

Design a Deduplicated Personalized News Feed

Company: Rippling

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Technical Screen

# Design a Deduplicated Personalized News Feed Design a news aggregation service that ingests articles from many publishers and serves personalized feeds. Every publisher gives each article a unique URL, but several publishers may report the same underlying event. The feed should retain useful source diversity while avoiding repeated stories about the same event. ### Constraints & Assumptions - Article ingestion and feed reads are continuous and horizontally scaled. - URL equality detects exact duplicates from one source but not cross-publisher duplicates. - Deduplication may be approximate and should expose a confidence score. - Personalization uses a candidate set plus ranking; model details are secondary to system boundaries. - A breaking story may evolve, so clusters can merge or split over time. ### Clarifying Questions to Ask - Does deduplication hide all but one article or group alternatives into one story card? - What freshness window defines the same event? - Which mistakes are worse: merging different events or repeating one event? - What latency is acceptable for ingestion and feed retrieval? ### Part 1 - Ingestion and story identity Design article normalization, exact deduplication, feature extraction, candidate matching, and story-cluster assignment. #### What This Part Should Cover - Stable article and publisher identities - Canonical URL handling without relying on URL alone - Text, entity, time, and media similarity signals - Versioned clusters and confidence-aware decisions ### Part 2 - Personalized serving Explain how story clusters become feed candidates and how the serving path chooses a representative article without discarding source alternatives. #### What This Part Should Cover - Story-level ranking rather than article-level repetition - Representative selection and source diversity - Cached candidate retrieval with freshness - Pagination stable under cluster updates ### Part 3 - Quality, scale, and correction Discuss approximate-neighbor search, hot breaking stories, human or automated corrections, evaluation, and failure recovery. #### What This Part Should Cover - Precision and recall of clustering - Feedback for false merges and false splits - Idempotent ingestion and replay - Monitoring of duplicate exposure and feed quality ```hint Separate article identity from story identity Keep each publisher's article as an immutable record, then assign it to a versioned story cluster used by the feed. ``` ### What a Strong Answer Covers - A credible cross-publisher entity-resolution pipeline - Personalized serving at the story level with transparent source choices - Explicit false-merge versus false-split trade-offs - Scalable indexes, correction paths, and measurable quality ### Follow-up Questions 1. How would you prevent a single fast publisher from defining the cluster narrative forever? 2. What happens to pagination when two story clusters merge? 3. Which online metric best reveals that users are seeing the same event repeatedly?

Quick Answer: Design a personalized news feed that groups cross-publisher coverage into story clusters without losing source diversity or freshness.

|Home/System Design/Rippling
Rippling logo
Rippling
Aug 25, 2026
mediumSoftware EngineerTechnical ScreenSystem Design
13
0

Design a Deduplicated Personalized News Feed

Design a news aggregation service that ingests articles from many publishers and serves personalized feeds. Every publisher gives each article a unique URL, but several publishers may report the same underlying event. The feed should retain useful source diversity while avoiding repeated stories about the same event.

Constraints & Assumptions

  • Article ingestion and feed reads are continuous and horizontally scaled.
  • URL equality detects exact duplicates from one source but not cross-publisher duplicates.
  • Deduplication may be approximate and should expose a confidence score.
  • Personalization uses a candidate set plus ranking; model details are secondary to system boundaries.
  • A breaking story may evolve, so clusters can merge or split over time.

Clarifying Questions to Ask Guidance

  • Does deduplication hide all but one article or group alternatives into one story card?
  • What freshness window defines the same event?
  • Which mistakes are worse: merging different events or repeating one event?
  • What latency is acceptable for ingestion and feed retrieval?

Part 1 - Ingestion and story identity

Design article normalization, exact deduplication, feature extraction, candidate matching, and story-cluster assignment.

What This Part Should Cover Guidance

  • Stable article and publisher identities
  • Canonical URL handling without relying on URL alone
  • Text, entity, time, and media similarity signals
  • Versioned clusters and confidence-aware decisions

Part 2 - Personalized serving

Explain how story clusters become feed candidates and how the serving path chooses a representative article without discarding source alternatives.

What This Part Should Cover Guidance

  • Story-level ranking rather than article-level repetition
  • Representative selection and source diversity
  • Cached candidate retrieval with freshness
  • Pagination stable under cluster updates

Part 3 - Quality, scale, and correction

Discuss approximate-neighbor search, hot breaking stories, human or automated corrections, evaluation, and failure recovery.

What This Part Should Cover Guidance

  • Precision and recall of clustering
  • Feedback for false merges and false splits
  • Idempotent ingestion and replay
  • Monitoring of duplicate exposure and feed quality

What a Strong Answer Covers Guidance

  • A credible cross-publisher entity-resolution pipeline
  • Personalized serving at the story level with transparent source choices
  • Explicit false-merge versus false-split trade-offs
  • Scalable indexes, correction paths, and measurable quality

Follow-up Questions Guidance

  1. How would you prevent a single fast publisher from defining the cluster narrative forever?
  2. What happens to pagination when two story clusters merge?
  3. Which online metric best reveals that users are seeing the same event repeatedly?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...