Once you are happy with your flow setup, you might need to deploy it to a certain environment, in order to actually execute it.
For example, say we have flow with the ref "Test". It is now ready, we have defined all the states, and now it's time to make it available for testing (meaning, make it available in the "TESTING" environment).
In order to do so, we need to create a new Deployment.
This can be done by using the toolbar in the flow editor window:
This is useful in order to ensure that once you release a certain snapshot of a flow for testing purposes, or to production, or to any other environment - you can safely assume that the version you've deployed will be there, unless manually overwritten by a newer deployment.
When an Execution is started, it will reference a certain deployment of a flow. This guarantees that through the whole execution of the flow - the same flow will be used, even if you update it or re-deploy it in the middle.