Search code examples
javaspring-bootactivitibusiness-process-management

Activiti whats the difference between Deployments, Definitions, Instances, Tasks and Jobs


Just looking at the Activiti admin app and I'm wondering what the differences are between Deployments, Definitions, Instances, Tasks and jobs.

enter image description here

Ive had a go at explaining what I think these do?..

Any help much appreciated.

Deployments - instances of Activiti Engine?

Definitions - ??

Instances - ??

Tasks - Outline of different tasks that can be applied to various processes. Such as Decision Tables, User tasks?

Jobs - List of current jobs/processes in action?


Solution

  • The activiti APP provides out of the box some generic UIs for generic "Tasks" that are usually required in a BPM system.

    So the following are some very simple answer to your questions:

    • Applications being deployed.. they all run on top of the same engine (we are changing that in Activiti Cloud). Applications are logical groups of Process Definitions, Decision Tables, Forms, etc.
    • Definitions: process, decision tables, forms definitions
    • Process Instances: running business processes
    • Tasks: User tasks generated by process instances (every time that a business process hits a UserTask node, it will create a new Task here). Tasks are always assigned to real people or groups of people.
    • Jobs: Async jobs that are created by Async nodes inside the process definitions, also used for timers. Imagine a DB (by default) scheduler like Quartz here to do async executions. Jobs are usually used for System to System interactions. When you have long running system to system interactions you might need to execute that in an asynchronous fashion and that is where jobs come into action.

    Hope that helps