BOSS is a workflow orchestrator, a system that can be configured to automate your workflow requirements; it interacts with the OBS and with people and systems around it to apply your workflow steps. For more BOSS related general information, see Infrastructure/BOSS.
BOSS Process is the workflow definition. Process defines the business logic that is to be executed.
Processes can be as simple or as complex as needed. They can define a linear execution of participants, have conditionals, loops and concurrency.
Here's a simple example :
process['definition'] = """ Ruote.process_definition :name => 'notification' do sequence do notify end end """
For more complex examples and the syntax reference please check the ruote documentation : http://ruote.rubyforge.org/definitions.html
The concept of a process store is helpful when dealing with multiple launchers and processes. It is simply a filesystem hierarchy that maps to a certain logical conditions and aids in the selection of the processes to launch which are stored in text files. The store can be managed using a VCS to track changes and ease deployment to production systems.
Here's an example of such a structure :
. └── Domain └── Project ├── EventName1 └── EventName2
The launcher script would traverse the tree matching the event data accordingly until it reaches a file with the event name, then it opens the file and reads the process definition inside.