![]() |
Documentation | Download | Samples | Contact |
Process flows or just flows for short are a set of tasks linked together to process a record in Piper. Each flow has an entry point or entry task that is called with the JSON record to be processed. As each task processes the JSON a link is selected to move to the next task. The task also determines what JSON document is passed to the next task. This continues until a task is called with no transitions.
Some of the terminology used besides flows, tasks, and links are boxes and actors. A box is synonym for a JSON document. It also has another JSON element that identifies where the record is from. The box also contains a tracking identifier for following a record as it moves through a flow. Much of this is transparent but some error messages may refer to those elements. A task receives boxes and ships boxes to the next task according to the link selected. Actors are the components of a task that performs the processing specific to the task.
In Piper flows are associated with a group. Once a record is added to a group the flow for the group is started with the record.
There are some built in flows. They are:
cache_only | Places record in the cache only. (see: help cache_only) |
chglog_only | Write record to the change long only. (see: help chglog_only) |
chglog_cache | Writes record to the change log and addes it to the cache. (see help chglog_cache) |
ignore | Ignores the record and does nothing with it. |
The flows are defined by JSON files. These files are placed in a separate directory and the name of the flow is used to determine the file path to follow to load the flow file. The file names used for attempting a load are first the name of the flow then the name with a .flow suffix and finally the flow name with a .json suffix. More details on the flow file format are available at the flow_config help topic.
There are a number of built in actors. These define how a task behaves. The built in task actors are:
async | Adds a thread to the flow. (see help actor_async) |
cache | Places a record in the cache. (see help actor_cache) |
chglog | Writes a record to the change log. (see help actor_chglog) |
nats_publish | Publishes a NATS message. (see help actor_nats) |
split | Allows parallel asynchronous paths. (see help actor_split) |
join | Joins parallel paths back into one. (see help actor_join) |
switch | Evaluates expressions on each brach until one match and then follows that link. (see help actor_switch) |
spawn | Spawns a new process if needed and sends the JSON box to the new process. Replies are used to select a transition to the next task.. (see help actor_spawn) |
remote | Sends the JSON box to the remote process. Replies are used to select a transition to the next. (see help actor_remote) |
http | Available in a future release. (see help actor_http) |
transform | Available in a future release. (see help actor_transform) |
< Previous | Next > |