Learn how to create event-driven business applications that can react to events using jBPM (a.k.a. RHPAM)
Category: Processes
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 health plan;Calculate tax… Continue reading Delivering domain logic with Custom Tasks
Consuming business assets via REST
As expected as default over any REST communication, when the integration via client and Kie Server is done via REST, there is no guarantee on the delivery or retry of this message. The initialization of Kie Services Client requires an instance of org.kie.server.client.KieServicesConfiguration. When using the REST approach, we should create the instance of KieServicesConfiguration… Continue reading Consuming business assets via REST
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 server… Continue reading Getting Started with the Kie Server Java API
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 the… Continue reading Mastering Transaction Boundaries
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 database… Continue reading Persisting custom data: Configuring external persistence
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 deals… Continue reading Runtime Strategy: Choose wisely
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 of… Continue reading Dealing with Unexpected Errors in Processes
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,… Continue reading Asynchronous Execution
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 more… Continue reading User Tasks and Forms