Learn System Design
Question Breakdowns
Advanced Topics
Key Technologies
Flink
Learn about how you can use Flink to solve a large number of problems in System Design.
- As one example of a problem, if our new service crashes it will lose all of its state: basically the count for the preceding 5 minutes is gone. Our service could hypothetically recover from this by re-reading all the messages from the Kafka topic, but this is slow and expensive.
- Or another problem is scaling. If we want to add a new service instance because we're handling more clicks, we need to figure out how to re-distribute the state from existing instances to the new ones. This is a complicated dance with a lot of failure scenarios!
- Or what if events come in out of order or late! This is likely to happen and will impact the accuracy of our counts.
- First, we're going to talk about how Flink is used. There's a good chance you'll encounter a stream-oriented problem in your interview and Flink is a powerful, flexible tool for the job when it applies.
- Secondly, you'll learn how Flink works, at a high-level, under the hood. Flink solves a lot of problems for you, but for interviews it's important you understand how it does that so you can answer deep-dive questions and support your design. We'll cover the important bits.
Basic Concepts
Sources/Sinks
Streams
Operators
State
Watermarks
Windows
Basic Use
Defining a Job
Submitting a Job
Sample Jobs
Basic Dashboard Using Redis
Fraud Detection System
How Flink Works
Cluster Architecture
Job Manager and Task Managers
Task Slots and Parallelism
State Management
State Backends
Checkpointing and Exactly-Once Processing
In Your Interview
Using Flink
Lessons from Flink
Conclusion
References
Currently 30% off
Hello Interview Premium
On This Page
Schedule a mock interview
Meet with a FAANG senior+ engineer or manager and learn exactly what it takes to get the job.