Camunda External Task Client (Java) 0.1.0-alpha1 Released

We are excited to release the first alpha of the Camunda External Task Client (Java).

A Workflow Engine typically calls Service Tasks actively. The Java client allows to break with this principle: remote and
independent Service Task workers continuously fetch tasks, perform the work and share the result with the Workflow Engine
once the work has been done.

The first preview version includes the following features:

  • Complete external tasks
  • Extend the lock duration of external tasks
  • Unlock external tasks
  • Report BPMN errors as well as failures
  • Share primitive and object typed process variables with the Workflow Engine

Example

Let’s consider the following example to get a better understanding of how to use the Java client:

A Workflow of Granting Loans

Firstly, make sure that you have an up and running Camunda Workflow Engine.

Secondly, download and deploy the loan granting workflow to the Camunda Workflow Engine.

Next, create a Maven project and adjust the pom.xml by adding the following Maven coordinates:

<dependency>
  <groupId>org.camunda.bpm</groupId>
  <artifactId>camunda-external-task-client</artifactId>
  <version>0.1.0-alpha1</version>
</dependency>

Then create a main class and add the following lines to it:

// bootstrap the client
ExternalTaskClient client = ExternalTaskClient.create()
  .baseUrl("https://localhost:8080/engine-rest")
  .build();

// subscribe to the topic
client.subscribe("creditScoreChecker")
  .lockDuration(1000)
  .handler((externalTask, externalTaskService) -> {

    // retrieve a variable from the Workflow Engine
    int defaultScore = externalTask.getVariable("defaultScore");

    List<Integer> creditScores = 
      new ArrayList<>(Arrays.asList(defaultScore, 9, 1, 4, 10));

    // create an object typed variable
    ObjectValue creditScoresObject = Variables
      .objectValue(creditScores)
      .create();

    // set the recently created variable
    externalTask.setVariableTyped("creditScores", creditScoresObject);

    // complete the external task
    externalTaskService.complete(externalTask);

    System.out.println("The External Task " + externalTask.getId() 
      + " has been completed!");

  }).open();

Thread.sleep(1000 * 60 * 5);

Finally, run the application. You should see the following output:

The External Task 1d375217-2cfe-11e8-96c2-769e8e30ca9b has been completed!
The External Task 0857150d-2cfe-11e8-96c2-769e8e30ca9b has been completed!
...

Now, you got a quick impression of how to use the Java client and how it behaves. This example can also be found
as a detailed step-by-step guide with all necessary project sources.

Please also see the documentation.

We are reliant on your feedback!
Feel free to share your ideas and suggestions with us in the forum.

  • Monitoring Camunda Platform 7 with Prometheus

    Monitoring is an essential facet of running applications in a production system. Through this process, organizations collect and analyze data, and determine if a program is performing as expected within set boundaries. When combined with alerting, monitoring allows for detecting unexpected system behavior to mitigate exceptional situations as fast as possible. Furthermore, tracking the performance of a system enables organizations to improve those aspects that have the biggest impact with higher priority. One essential aspect of monitoring is the list of key metrics you want to observe. There are different categories of statistics that can be of interest here. To observe the defined metrics, there are plenty of application monitoring tools on the market today. They differ in many aspects...

    Read more
  • Securing Camunda 8 self-managed cluster and applications...

    Directory services are an effective way to manage an organization’s users, groups, printers, devices, and more. Most organizations accomplish this using Active Directory, Apache Directory, Oracle Internet Directory, or other similar tools. Recently I worked with a customer who wanted to see how he could secure the Camunda 8 Platform and process applications with such a directory. Their requirements consisted of: Allowing Directory users to access Camunda applications (Tasklist, Operate, Optimize) Accessing secured Tasklist & Operate APIs from our custom project Securing the custom project In this article, I’ll briefly explain the 3 easy steps taken to fulfill their requirements which include: Federate users from the Directory service into Keycloak Declare an application in Identity to access Camunda APIs Configure...

    Read more
  • Accelerate Connectivity with Camunda Platform 8.1

    We’re thrilled to announce Camunda Platform 8.1, the latest release of our process orchestration solution. This new version introduces features that accelerate connectivity to the many different systems and technologies that are required for true digital transformation, including: Create custom Connectors with our Integration Framework to accelerate connectivity New out-of-the-box Connectors for popular services Enhancements to Camunda Modeler that improve productivity Hot backups and official support for Amazon EKS and Red Hat OpenShift Plus, several upgrades requested by Camunda Platform 7 customers Organizations across all industries rely on complex technology stacks to adapt and enhance their operations in response to market dynamics, new disruptive companies, and increasing consumer expectations. Your technology stack likely includes everything from cutting-edge technologies to legacy...

    Read more

Ready to get started?

Still have questions?