This chapter describes the visibility of transient workflow objects in queries and IPP service methods.
Regardless of whether a process instance is transient or not it is not recommended to modify a user involved in a currently running process instance, since in these cases the outcome is undefined. Apart from that, UserService operations are not affected by transient process execution.
All QueryService methods operate against the persisted Audit Trail Database exclusively. Hence any transient process instances or running deferred processes do not influence any Query Service method results. Transient processes never change any query results, even after their completion.
Retrieving a process instance or its related data via API, e.g. via WorkflowService or AdministrationService, always returns a snapshot of the currently executed process instance. After completion it is completely gone, unless its deferred). Since a transient process instance by definition is executed without waiting in a defined state, e.g. a suspended activity instance, there is no means to modify the process instance's state safely. If not using transient processes, to perform a safe modification you had to first determine the current state and afterwards modify based on the retrieved state. In case of transient processes as soon as the state has been retrieved it might have already changed. Therefore any outcome of modifying operations is undefined.
Please note that during execution transient as well as deferred process instances are completely invisible, if the property Carnot.Engine.Tuning.TransientProcesses.ExposeInMemStorage is set to false . By default this property is true. For details on this property refer to section Tuning of chapter Server Side Properties.
During transient process instance execution recovery is unable to find transient or deferred process instances, since they are invisible for queries triggered by recovery. However, transient process execution detects whenever a process instance needs to be recovered. In these cases transient process instance execution for the process instances in question is canceled and they are written to the database. From then on the ordinary recovery mechanism may be applied.
These operations are working directly on the Audit Trail database. Hence, transient process instances are completely invisible, deferred ones are not visible until they are written to the database.