+1

On Fri, 2 Aug 2024 at 08:44, Enrique Gonzalez Martinez <egonza...@apache.org>
wrote:

> * Human Task as subsystem *
>
> This document describes how to make the human task as a subsystem.
>
> At present workflow runtime and human task runtime is entangled
> causing several problems within the workflow engine processing. Also,
> other flavors of runtime do not have human tasks in their execution
> model.
>
> - Internal lifecycle causes pauses in workflow processing.
> - It cannot be used as a deployable subsystem.
> - Events and listeners are in the same side of the engine
> - It needs to evolve at different pace from the engine
> - It requires different security requirements from the engine (like
> SSO in case of human task or identity propagation)
>
> * Constraints *
>
> The constraints for this work are:
>
> - The lifecycle of the human task should be independent of the workflow
> engine.
> - It should be able to not be deployed with the workflow.
> - It should have its events independent from the engine
> - It has different security requirements from the engine. We need to
> properly identify the user logged in.
> - It should be able to evolve at a different pace to avoid impact in
> the engine. (the closer to the user the fastest pace requires)
> - It should be able to be deployable in an in-vm or distributed
> environment like other subsystems. Human tasks can be shared among all
> deployments, saving deployments and size.
> - It should support storage.
> - Assignment strategies
> - Bulk operations
> - Task notifications
> - Deadlines
> - Transaction integration with the runtime engine.
>
> * Architecture *
> Look at doc apache to check diagram
>
> - As another subsystem the system will have the same approach through
> the HumanNodeInstanceImpl.
> - UserTaskService will be the interfaces plus listeners and events
> - Transport will be responsible for in-vm or distributed communication
> - UserTaskImpl will be the implementation itself.
>
> * Risk Assessment *
>
> The idea would be to create a new project in a kogito app called
> usertask. This will be able to be deployed as a subsystem or in
> embedded mode. This subsystem is similar in requirements as the jobs.
>
> Communication types requirements: It has two different ways of
> communication
>     - Lifecycle: create the human task from the engine (this was done
> by rest in the case of jobs)
>     - Events: produce events like transitions, outputs, inputs,
> assignments...
>
> Communication channels:
>     - In-vm: when deployed in compact architecture
>     - Streams: when deployed in distributed architecture
>
> Rest endpoints for user tasks live data modification.
> SSO support
> User Impersonation (v7 features)
> Persistence support (database only for now, pgsql.)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@kie.apache.org
> For additional commands, e-mail: dev-h...@kie.apache.org

Reply via email to