Flink handles failures pretty well with its automated checkpointing mechanism (in addition to an other feature called "Savepoints", which allows you make a manual snapshot of the current state of the streaming pipeline to restore from it later in case of failure).
You can find more details in the docs:
- https://ci.apache.org/projects/flink/flink-docs-release-1.2/...
- https://ci.apache.org/projects/flink/flink-docs-release-1.2/...