When updating the streaming job, we need to minimize the disruption time that comes from the Flink cluster re-creation. One option to address it might look like blue-green deployment: 1. Flink operator receives an update request 2. A new cluster is created 3. When the new cluster is ready, the operator triggers savepoint (if `JobSpec.takeSavepointOnUpdate: true`) and stops the old job 4. When savepoint is taken, the new job starts in the new cluster. An important requirement is that two identical jobs should not run simultaneously.