Object Flows: Loading and processing of workflow items

Any resource with a status of not-available:{stateID} is picked up by the workflow engine loader and added into the workflow as a workflow-item. The loader is composed of two parts – producer and consumer. The loader-producer updates the status of resource to loading-in-process:{stateID} and puts the resource identifier in kafka. Loader-consumers are running on all kafka nodes. The loader-consumer – reading the kafka partition where resource identifier gets written – picks up the resource identifier, creates the workflow-item and updates the resource status to available:{stateID}.

Any workflow-item with the status of available:{stateID} is picked up by the workflow engine performer and processed according to the processing instructions associated with the campaign/state (identifier=stateID) – for example send verification request email, etc. The performer is also composed of two parts – producer and consumer. The performer-producer updates the status of workflow-item to in-progress and puts the workflow-item in kafka. The performer-consumer listening to the partition where it gets written, picks up the workflow-item, performs the instructions and update the status to complete.

 

Leave a comment