This annotation is required by any
class FlowLogic which has been designated to initiate communication with a counterparty
and request they start their side of the flow communication.
There is also an optional
InitiatingFlow.version property, which defaults to 1, to specify the version of the flow protocol. This
integer value should be incremented whenever there is a release of this flow which has changes that are not backwards
compatible with previous releases. This may be a change in the sends and receives that occur, or it could be a change
in what a send or receive means, etc.
The version is used when a flow first initiates communication with a party to inform them of the version they are using. If the other side does not have this flow registered with the same version then the initiation request will be rejected. Currently only one version of the same flow can be registered by a node.
The flow version number is similar in concept to Corda's platform version but they are not the same. A flow's version number can change independently of the platform version.
If you are customising an existing initiating flow by sub-classing it then there's no need to specify this annotation again. In fact doing so is an error and checks are made to make sure this doesn't occur.