Layer 3 · Go deeper · 9 min
Go deeper
Size it, build it, then make the calls an interviewer will push you on.
Back of the envelope
Size it up
Tap through each step of the arithmetic.
How much state does deduplicating click IDs for 10 minutes take?
How long is catch-up after a crash, checkpointing every 60 s?
Build-up · 6 steps
Follow checkpoint n through the job
Two Kafka partitions feed two sources and one keyed window. Watch Flink take a consistent snapshot without stopping the stream, then recover from it.
Step 1 of 6
Trigger checkpoint n
The JobManager tells every source to start checkpoint n. Each source records its Kafka offset, P0 at 1,042 and P1 at 988, and injects barrier n into its output.
4 interview moments
You’re the candidate
The interviewer pushes on the hard parts. Pick an approach and see how it holds up.
Deep dive 1 of 4
Interviewer
“Your Flink job counts clicks per ad per minute into an OLAP store. A TaskManager dies. How do you keep the counts exactly right?”
Your move. Pick an approach:
Deep dive 2 of 4
Interviewer
“During an IPL final one ad takes 30% of all clicks, and the whole job falls behind. What do you do?”
Your move. Pick an approach:
Deep dive 3 of 4
Interviewer
“Clicks are billed per ad per minute, phones upload them late, and volume is high. A teammate proposes a consumer incrementing Redis counters. Your call?”
Your move. Pick an approach:
Deep dive 4 of 4
Interviewer
“Records still flow into your windowed job, yet no window ever fires. What do you check first?”
Your move. Pick an approach:
Build-up · 5 steps
Follow one click through a window
One click on ad 42, stamped 10:00:58, with a 5 s watermark bound and a minute of allowed lateness. Where it lands depends on when it arrives.
Step 1 of 5
A window per ad per minute
Clicks keyed by ad_id fall into one-minute tumbling windows by event time. Ad 42’s 10:00 window is created by its first click and keeps one accumulator, not every event.