+1

On Fri, Aug 2, 2024 at 4:13 AM Pere Fernandez (apache) <pefer...@apache.org>
wrote:

> +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