The second alpha version of Camunda 7.9.0 is here and it’s loaded with new features. The highlights are:

  • Throttle login attempts
  • Long polling for ‘Fetch and Lock’ of External Tasks
  • Additional filtering options for ‘Fetch and Lock’
  • Support for expressions in External Task topics
  • Jackson version update
  • Support for Tomcat 9

Throttle Login Attempts

Within this alpha release we support throttling login attempts. In order to improve security, it can now be configured that after each unsuccessful attempt the user needs to wait for specified time until next attempt.
You can find more information about the configuration in the User guide.
The user will be locked (not able to login) after reaching predefined maximum number of unsuccessful attempts to login. (Bear in mind that only a Camunda administrator is able to unlock users.)

This mechanism is not applicable if the system uses LDAP configuration. Each LDAP vendor offers similar mechanisms allowing you to achieve the same behavior.

Long Polling to ‘Fetch and Lock’ External Tasks

Ordinary HTTP requests are immediately answered by the server, irrespective of whether or not the requested information
is available. This inevitably leads to a situation where the client has to perform multiple recurring requests until
the information is available (polling). This approach can obviously be expensive in terms of resources.

We tackle this bottleneck by introducing long polling to ‘Fetch and Lock’ External Tasks.

Long polling to 'Fetch and Lock' External Tasks

The basic idea behind long polling is, that a request is suspended by the server if no external tasks are available. As soon as new
external tasks occur, the request is reactivated and the response is performed. The suspension is limited to a
configurable period of time (timeout).

Long polling significantly reduces the number of requests and enables using resources more efficiently on both,
the server and the client side.

The following example shows how to perform a long polling request:

POST /engine-rest/external-task/fetchAndLock

{
  "asyncResponseTimeout": 1000,
  "workerId": "workerOne",
  "topics": [
    {
      "topicName": "validateAddress",
      "lockDuration": 10000
    }
  ]
}

Additional Filtering Options for ‘Fetch and Lock’

When the client has already received the queried External Tasks, resources may be further expended by trying to confirm that the fetched tasks conform to the client’s criteria.
By providing additional filtering options to the ‘Fetch and Lock’ feature for External Tasks, a more fine-grained control is obtained over which External Tasks are fetched and locked.

Filter External Task Topics by Business Key

When filtering External Task topics by Business Key, it can be ensured that an External Task, associated with a certain topic, also has the defined Business Key.

Here’s an example of how to utilize this feature:

POST /engine-rest/external-task/fetchAndLock

{
  "workerId":"aWorkerId",
  "maxTasks":2,
  "usePriority":true,
  "topics":[
    {
      "topicName": "createOrder",
      "businessKey": "aBusinessKey",
      "lockDuration": 10000,
      "variables": ["orderId"]
    }
  ]
}

Filter External Task Topics by Process Variable Values

Another filter that can be applied allows to filter External Task topics by Process Variable values.

Below is an example on how this feature can be utilized:

POST /engine-rest/external-task/fetchAndLock

{
  "workerId":"aWorkerId",
  "maxTasks":2,
  "usePriority":true,
  "topics":[
    {
      "topicName": "createOrder",
      "processVariables": {
        "variableName": "variableValue",
        "anotherVariableName": "anotherVariableValue"
      },
      "lockDuration": 10000,
      "variables": ["orderId"]
    }
  ]
}

Support for Expressions in External Task Topics

Now possible to dynamically determine the External Task’s topic during runtime by providing expression support in the topic.
This allows more flexible assignment and opens up a wider range of new application scenarios.

Here is a usage scenario of this new feature:

  <!-- where invoiceType may be "incoming" or "outgoing" -->
  <serviceTask
    id="externalTask"
    name="externalTask"
    camunda:type="external"
    camunda:topic="${invoiceType}" />

Jackson Version Update

This alpha release is accompanied by a Spin project v. 1.5.0 release with updated Jackson dependency. From now on Spin by default relies on Jackson 2.9.3.

What’s Next?

The next alpha version is scheduled for the end of March and our team is already working on it.

Here are few highlights if you want to know what the team is preparing for the next releases:

  • Client for External Tasks in JavaScript and Java

You can also find out more details if you check out our roadmap.

Your Feedback Matters!

Your feedback is extremely important for us in order to improve Camunda BPM, so your thoughts are always highly appreciated and considered by our team.

Feel free to share your ideas and suggestions with us by writing a post in the forum.

Furthermore, if you have any feedback related to User Experience, things that keep bugging you, things that you think should work differently etc., please share your thoughts with us at https://camundabpm.userecho.com

  • 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?