Ruote is a workflow engine. It's a runtime for long running business processes. Processes are explicitly defined and may be explicitly handled (start, pause, cancel, update). A process is started by handing a business process definition to the engine. A process definition is expressed in ruote’s own process definition language, which comes in three flavours: XML, a Ruby DSL, and Radial. A process definition describes the flow of work among participants. A ruote engine can simultaneously handle multiple process instances, created from one or more different process definitions. A process instance can be modified on the fly.