Design a Notification UI with History and Live Updates

Read the full interview experience this question came from →

Quick Overview

Design notification history and live delivery together, with server-side cursor pagination, read-state updates, initial-load synchronization, and reconnect recovery.

Design a Notification UI with History and Live Updates

Company: Roblox

Role: Frontend Engineer

Category: System Design

Difficulty: medium

Interview Round: Other

Design a user-facing notification system that loads existing read and unread notifications when a page opens and receives new notifications in real time. ### Constraints & Assumptions The reported design explicitly requires a traditional history API with server-side pagination in addition to WebSocket or Server-Sent Events. State notification ordering, retention, and read-state semantics rather than treating the live channel as durable history. ### Clarifying Questions Are read states per user or per device? Can notifications arrive late? What does mark-all-read mean while new notifications arrive? Must a reconnect recover missed events? ### What a Strong Answer Covers A durable notification/read-state model, stable cursor pagination, initial-load/live-stream coordination, deduplication, reconnect recovery, and a responsive UI. ### Follow-up Questions How do you avoid a gap between the first API response and starting the stream? How do changes on another device update the unread count? Why is client-side pagination insufficient for a long history?

Overview: Design notification history and live delivery together, with server-side cursor pagination, read-state updates, initial-load synchronization, and reconnect recovery.

Read the full Roblox Frontend Engineer interview experience this question came from

|Home/System Design/Roblox
Roblox logo
Roblox
Sep 15, 2026
mediumFrontend EngineerOtherSystem Design
0
0

Design a user-facing notification system that loads existing read and unread notifications when a page opens and receives new notifications in real time.

Constraints & Assumptions

The reported design explicitly requires a traditional history API with server-side pagination in addition to WebSocket or Server-Sent Events. State notification ordering, retention, and read-state semantics rather than treating the live channel as durable history.

Clarifying Questions Guidance

Are read states per user or per device? Can notifications arrive late? What does mark-all-read mean while new notifications arrive? Must a reconnect recover missed events?

What a Strong Answer Covers Guidance

A durable notification/read-state model, stable cursor pagination, initial-load/live-stream coordination, deduplication, reconnect recovery, and a responsive UI.

Follow-up Questions Guidance

How do you avoid a gap between the first API response and starting the stream? How do changes on another device update the unread count? Why is client-side pagination insufficient for a long history?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...