Advisability: Couple user and service tasks

We would very much appreciate your opinion on a design pattern we have fallen into. First, some design notes for our application:

  1. Most of the business data associated with our process is stored in an external database. We only store enough data in process variables to satisfy gate condition evaluation.
  2. When a user completes a task, we call one of our REST APIs that persists any business data changes and then we call the Camunda API to complete the task and make any applicable process variable changes.

Here is the aspect of the design that we would love to get your opinion on:

It is quite common for us to invoke a service API immediately after completing a user task. My instinct tells me that I should create a separate service task corresponding to the called service. However, since the data required to make the service call is the same data persisted in the preceding user task, it is convenient to use that data directly. Thus we couple this service call with the completion of the user task and the persisting of business data. If we were to create a separate service task to call our service API, we would have to first do a database query to get the necessary data to make the service call.

Your opinion would be greatly appreciated.

Hi Chuck,
Have a look at execution listeners where you can execute either java code or scripts to execute code at various events in the lifecycle of a task rather than creating separate service tasks.

Joe