Basic Principles
This chapter describes the flow controller. For specific parameter description, refer to the FlowController component documentation.
- To ensure that a flow controller is not traversed by service orders, it should be placed next to the flow, but without connection to other modules.
-
A flow controller is meant to regulate the number of service orders being processed at a time inside a Fulfillment Provisioning flow.
-
The flow controller is configured with a high water mark value which indicates the number of service orders that the flow controller allows to be running inside a flow.
-
Moreover, at any given time, the flow controller maintains a water level value indicating how many service orders are currently running inside the Fulfillment Provisioning flow.
-
Finally the flow controller controls the heap out of the order queues, and is responsible for pumping messages out of these heap outs and making them go downstream of the order queues.
Therefore, when the flow controller is notified by an order queue that its heap has a message waiting to be put downstream, it checks its water level:
-
If the water level is below the high water mark, the flow controller makes the order queue release its pending message downstream.
-
Otherwise, the order queue is put inside a list of waiting order queues maintained by the flow controller and the flow controller waits for a message to be retired. When a message will be retired