Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce CLAIMING event and lifecycle state for User Task #25408

Open
1 of 6 tasks
Tracked by #21974
ce-dmelnych opened this issue Nov 28, 2024 · 2 comments · May be fixed by #25429
Open
1 of 6 tasks
Tracked by #21974

Introduce CLAIMING event and lifecycle state for User Task #25408

ce-dmelnych opened this issue Nov 28, 2024 · 2 comments · May be fixed by #25429
Assignees
Labels
component/zeebe Related to the Zeebe component/team kind/feature Categorizes an issue or PR as a feature, i.e. new behavior kind/task Categorizes an issue as a breakdown of low-level implementation detail from a parent issue

Comments

@ce-dmelnych
Copy link
Collaborator

ce-dmelnych commented Nov 28, 2024

Description

Introduce a new CLAIMING event and corresponding CLAIMING lifecycle state in addition to the existing ASSIGNING state. This addition will help to clearly distinguish between ASSIGN and CLAIM commands during user task processing in a scenarios such as:

  • Determining the correct processor to finalize the command after the execution of assignment listeners.
  • Identifying which command (ASSIGN or CLAIM) should be re-executed after resolving an incident caused by a failure during assignment task listener properties evaluation.

Key deliverables

  1. Add CLAIMING event and CLAIMING lifecycle state:

    • Create a UserTaskClaimingApplier to handle the transition to the CLAIMING lifecycle state.
    • The records stream for claim operations will follow this structure:
      C CLAIM
      E CLAIMING -> Applied by new `UserTaskClaimingApplier`, setting the `CLAIMING` lifecycle state for the user task.
      E ASSIGNED
      
  2. Ensure backward compatibility by maintaining existing ASSIGNED events after the CLAIMING state.

  3. Testing:

    • Add unit and integration tests to verify:
      • The correct UserTask procession after claim operations.
      • Backward compatibility with the existing behavior.
  4. Evaluate the effort required to add CLAIMED event:

    • The introduction of CLAIMED event will provide a more complete and intuitive records stream:
      C CLAIM
      E CLAIMING
      E CLAIMED
      
    • Assess the level of effort required to support the CLAIMED event by other components like the Tasklist, Operate, Optimize application.

Acceptance criteria

  • The CLAIMING intent and CLAIMING lifecycle state are introduced.
  • Update UserTaskClaimProcessor to write CLAIMING event upon processing CLAIM command.
  • Introduce UserTaskClaimingApplier that will handle user task CLAIMING event
  • The implementation does not introduce breaking changes.
  • Tests are updated to validate the new behavior.
  • Evaluate the effort required to add CLAIMED intent.

Blocks:

@ce-dmelnych ce-dmelnych added component/zeebe Related to the Zeebe component/team kind/task Categorizes an issue as a breakdown of low-level implementation detail from a parent issue labels Nov 28, 2024
@ce-dmelnych ce-dmelnych self-assigned this Nov 28, 2024
@ce-dmelnych ce-dmelnych added the kind/feature Categorizes an issue or PR as a feature, i.e. new behavior label Nov 28, 2024
@ce-dmelnych
Copy link
Collaborator Author

ce-dmelnych commented Nov 29, 2024

Required effort to support CLAIMED event by related applications

I reviewed the necessary changes across the related (Tasklist, Operate, and Optimize) applications to support the introduction of a CLAIMED intent that will follow the CLAIMING event.

Below is a breakdown of what would need to be done:

Required changes:

Tasklist

Operate

  • importer-8_7 module:

Optimize

Summary

The introduction of the CLAIMED intent would require the coordination between three teams to update (Tasklist, Operate, and Optimize) applications. Furthermore, since the CLAIMED intent would not introduce distinct behavior and would essentially be treated the same way as the existing ASSIGNED intent, the value of this change is limited.

Considering the tight timeline for the 8.7 release and the effort required to coordinate, implement and test these updates, I would recommend to postpone the introduction of the CLAIMED intent for a future release.

@ce-dmelnych
Copy link
Collaborator Author

ce-dmelnych commented Nov 29, 2024

Backward compatibility of CLAIMING intent

The introduction of the CLAIMING intent(event) is intended to be backward compatible. As the ASSIGNING intent has not yet been used by other applications such as Operate or Optimize, its usage is only planned by the Tasklist application as outlined in task #25421.

Note

After merging PR #25429, the CLAIMING intent can be treated the same way as its planned for the user task records with ASSIGNING intent by Tasklist application.

FYI: @marcosgvieira

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/zeebe Related to the Zeebe component/team kind/feature Categorizes an issue or PR as a feature, i.e. new behavior kind/task Categorizes an issue as a breakdown of low-level implementation detail from a parent issue
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant