This presentation introduces the BOSS system.
BOSS is a framework to orchestrate workflow steps around the build system.
Workflow : Ruote
Ruote has been selected as the workflow framework :
- Clean design
- Ruby core (fits with the OBS)
- JSON messages
- Language agnostic
- Active + welcoming upstream
There is an overview of Ruote which explains how it works.
- Jobsheet based (not state-machine):
- The workflow passes a 'sheet of paper' between participants
- Each participant looks at the paper, does some work, writes on it and passes it on
- The engine decides who gets the paper next
- Paper = JSON structure
- Multiple independent workflows can co-exist
- Multiple Language Bindings
- Persistence, concurrence and queuing “for free”
Talking to the BOSS
- AMQP – Queues and RPC
- Queues for 'work'
- RPC for immediate calls (see AIR)
- Messages – all JSON
- Service request/response
Communication : Queues
Communication : RPC
This is AIR
Communication : BOSS Participant
- Receive a workitem
- Process it
- Return it
- Control thread using RPC allows cancel/status