Design Tips
Calling Another Process from ActiveVOS
In ActiveVOS you may have many processes some which interact with each other. If you are calling another ActiveVOS process there are two invoke types available Process and Sub process. The most efficient way to call another process from a process is using the Process invoke.
If you are not waiting for a response from the child process, there is less overhead in ActiveVOS for the REST api if you call requestResponse and send back an immediate acknowledgement. This is as of version 9.2.4.3.
If you call a process from another process, this does not prevent you from calling the same process from other sources Soap/Rest/JMS.....
For example you can call the same process directly from PIM, from Soap ui and from another ActiveVOS process.
Consuming PIM Messages and grouping them.
Reason
We may want to group incomming triggers in order to increase performance
We may want to update data only when we have a full set of data to update
We may want to implement business rules on a set of data rather than one value
In the case where Pim cannot exclude some data from creating triggers but we do not want to perform an action on that trigger
To lessen the number of processes started
Considerations
We do not want to cause any extra potential failure points between Pim and ActiveVOS
We do not want to delay the consumption of messages by ActiveVOS
We need to be able to consumer different types of messages.
Suggestions
Have a process that consumes all messages at an endpoint without correlation.
Have an API that includes a payload to represent the actual data being sent over the wire and a header with correlation information
Create a new object with the header and payload and call another process that will group the data by the specific correlation needed
Put the correlation on the new object rather than the rest service.