...
Once a flow has been started via the start() method it can take an arbitrarily long time to complete; you can see if the flow has completed via the
isStopped() method. A flow could fail for some reason (such as it timed out or some error occurred) so there is a method isFailed() which can be used to easily inspect the flow.
Using timeouts
Its very common to add timeouts onto flows so that if the flow is not complete by a certain time then the flow is stopped & failed; often another parent
flow may then do something differently
Composing flows
One of the main reasons for using an object orientated language is to make composition and reuse possible; similarly BeanFlow allows you to compose flows together to make modular and reusable workflow constructs easily.