Delivering domain logic with Custom Tasks

Custom Tasks, a.k.a. custom Work Items are used when the natively provided components are not clear enough to demonstrate the required domain demands. See examples of domain-specific tasks that a business user would find useful to have available in the process designer: Enhance customer data; Validate Personal ID against Official State Service; Check customer healthRead more →

Getting Started with the Kie Server Java API

Kie Server Java client API is used when it’s necessary to create a Java service to interact with a remote Kie Server (not an embedded engine). Consider that you have an architecture with a Kie Server running your business projects and you want to consume them using a Java service running in another application serverRead more →

Mastering Transaction Boundaries

When planning usage of processes that are complex, long-running, and with possible points of failures like custom work item handlers, asynchronous tasks, timers, signals, and service tasks, it is crucial to understand how jBPM deals with transactions. This knowledge might save some troubleshooting hours if you have persistent processes. “Why?“, you might ask: if theRead more →

Persisting custom data: Configuring external persistence

When working with business processes, it is expected to work with persistent process data scenarios. Considering this situation, it is common for users to use a different database to store process data, apart from the database where the domain information is stored. As an example, storing critical information from customers apart from the engine databaseRead more →

Runtime Strategy: Choose wisely

Kie Server can be configured to deal differently with the requests it receives and the objects it stores in memory or in the database. Properly configuring how the engine deals with the objects in memory, ensures a project with fewer resource consumption and avoids unexpected behaviors. Runtime Strategy configuration affects directly how the engine dealsRead more →

5. Techniques to boost a BA Project

Previous posts of the jBPM Getting Started Series should provide a good base for the understanding of this chapter. Also, basic knowledge about application transactions should provide a better understanding of the chapter. The engine can be tuned for business automation projects to achieve better performance results are achieved. Mainly when involving business rules validation,Read more →

Dealing with Unexpected Errors in Processes

During the development phase, it is expected that developers deal and treat unexpected behaviors, predictable and unpredicted errors that might happen during the execution of code. Consider the following situation: An online traveling company named MaTrip.com sells a whole trip experience with a discount for a single package buying: flight + hotel. But each ofRead more →

Asynchronous Execution

By default, the flow of tasks is executed in a synchronous way: all tasks will be treated one after the other, by a single thread. This being said, if a process contains, example, four service calls – where each call lasts around 30 seconds – this process execution will run – and allocate JVM, CPU,Read more →

User Tasks and Forms

User Tasks allow the interaction of humans with a set of automated tasks. In this way, a series of automatic tasks can be triggered before – providing input for – human decisions, and the output of the user task can then be used to define further actions of a flow. User tasks have a moreRead more →

Recall basic modeling concepts

In a business automation project, business process assets are described with BPMN diagram or CMMN diagrams. It’s recommended to base the creation of diagrams on specifications definition, therefore, the implementation will be executable in any software which attends to the specification. Process modeling knowledge is not restricted to specific products. Just like a Java classRead more →