Note: this release contains database changes. Upgrade scripts can be found in the “sql” folder of the distribution.
(* using Robert Gimbel’s special homemade yeast)
Things are happening in the cockpit
There is process definition summary plugin which visualizes the state of a process definition using green and red dots (red = failed jobs):
On the process definition details page we now have process instance table:
Incident infrastructure in Process Engine (Work In Progress)
We started work on a new Infrastructure for incidents in the process engine. This project has 3 goals:
Provide an abstraction over different “notable” events that can happen during process execution.
Provide an extensible, event-oriented API for handling such incidents.
Provide a default implementation for incident event handlers which writes incidents to the database.
Currently we provide incidents for failed jobs. Failed job incidents are raised when automatic retries for a Job (Timer or Asynchronous continuation) have elapsed. The incident indicates that the corresponding execution is stuck and will not continue automatically. Administrative action is necessary. The incident is resolved, when the job is executed manually or when the retries for the corresponding job are reset to a value > 0. In the future, we plan on providing features for raising additional kinds of incidents. Examples are the fact that a process instance has entered a certain task, that an error boundary has been triggered or that a process instance took to long to complete.
Incident handling is extensible. The default implementation writes incidents to the database such that they can be queried:
In cockpit we can now visualize different kinds of incidents in the same way and allow users to define for a given process definition what constitutes an “incident”.
We also support recursively raising incidents for super process instances and correlating them to the call activity which has invoked the process instance in which the incident occurred. This is used by the cockpit tool for visualizing the state of a process definitions (and instances). The recursive nature of incidents will allow the cockpit tool to provide drill-down features.
There is an extensible API for handling incidents which allows you to replace or enhance the default behavior. For example, you could send an email to an administrator if an incident inside a given process definition is raised.