withsoon
withsoon/System Design/Netflix Data EngineeringMODELING

Data Modeling

Explain grain, partitions, facts, dimensions, marts, lineage, and why each table exists for analytics or ML use cases.

View Backend Track

Chapter

9 / 17

On this page

Core tables

MODELINGChapter 99 min

Connect ERD, star schema, lineage, and table semantics in one place.

I explain the model by grain first, then facts and dimensions, then how each table is populated, partitioned, and consumed downstream.

MODELING9 minConnect ERD, star schema, lineage, and table semantics in one place.

Quick jumps

Click to jump

Monthly users

200M-250M

Docs use both 200M+ and 250M assumptions

Daily active users

80M

Used for heartbeat and Kafka math

Peak concurrency

15M

Useful for QoE and live ops workloads

Core tables

Show the key data model interactively

Let users inspect the grain, columns, and examples rather than reading generic table descriptions.

Tables

Schema columns

fact_watch_session

Fact

Grain

One row per user-profile-content-device-session

Partition

event_date

Bucket

user_id or content_id depending workload

Use case

Official watch-time, completion, binge, QoE, and recommendation features.

watch_session_id

Surrogate session key for the trusted playback session grain.

Example query

SELECT content_id, SUM(total_watch_seconds) / 3600 AS watch_hours
FROM gold.rpt_content_daily_metrics
WHERE event_date = DATE '2026-06-21'
GROUP BY 1
ORDER BY 2 DESC;

Interview follow-up

Why is completion_pct based on unique content coverage instead of total watch seconds?
Lineage flow

Show who writes each table and who reads it

This is the missing DE-specific visual that makes the platform feel intuitive.

Table population flow

Show how one event family becomes a trusted Gold metric.

1

video.heartbeat / playback events

2

Kafka playback topics

3

Bronze immutable raw events

4

Silver trusted playback session facts

5

Gold content and user metrics

6

BI dashboards + feature tables

ERD + star schema

Connect operational entities to analytical tables

Explain how source relationships become serving-friendly dimensions and facts.

Core entities

UserProfileContentEpisodeDeviceSubscriptionExperiment

Behavioral facts

Watch SessionBrowse ImpressionSearch EventRecommendation ExposureQoE Event

Published marts

content_daily_metricsuser_retentionfeature_user_genre_affinityfinance_revenue

Star schema visual

fact_watch_session

grain: one trusted playback session

dim_user

dim_profile

dim_content

dim_device

dim_date

β†’
β†’
β†’
β†’
Say this

Explain modeling by grain first

That keeps your answer senior and avoids column-by-column noise.

Say This In Interview

I explain the model by grain first, then facts and dimensions, then how each table is populated, partitioned, and consumed downstream.

Last reviewed June 2026 Β· By Prasoon Parashar

Numbers are interview assumptions, not real Netflix internal figures.

Was this tab useful?