Kogito Ergo Automate: Knowledge on the Cloud
The newcomer on the business automation block is backed by the power of cloud-native computing.
Join the DZone community and get the full member experience.Join For Free
Every application exists to deliver business logic. But many developers still struggle with workflows and rule engines. How can developers increase their productivity and effectiveness on business logic delivery in cloud environments? Is it possible to create applications that use a precise and clear language to implement maintainable business workflows and business rules?
Quarkus project already shows the power and effectiveness of working in a fast-development environment that can also provide native execution. Would it be possible to work with business automation projects like the ones we used to create with jBPM and Drools, but the cloud-native capability, speed, and low resource consumption of a Quarkus application?
Business application is all about knowledge automation.
The jBPM, Drools and OptaPlanner community is now providing a way for developers to build the next generation of business applications that support the usage of GraalVM for native compilation.
Meet Kogito, an open-source, cloud-native business automation tool designed for developers. It pleases those who like to develop using Spring Boot and also those who are enjoying the supersonic Quarkus experience. Besides being a powerful engine, Kogito allows developers to implement the core business logic in a business-driven way. It brings concepts and maturity from 15+ years of production battle-tested projects like jBPM, Drools, and OptaPlanner.
You may also like: Test-Driven Development With a Spring Boot REST API
The magic Kogito does behind the scenes, it to read business assets — like a BPMN2 file, Drools rules, or decision tables, for example - and create executable models using Java Fluent API. Beyond other advantages, this behavior allows developers to take advantage of the hot-reload feature provided by Quarkus, in other words, it is now possible during local development to update a business process diagram, save it, and immediately test the changes without restarting the server.
For every business asset, Kogito automatically generates an executable business resource each with its own rest endpoint allowing client apps interaction with processes, tasks, and rules. With this kind of functionality, you can now spend time with things that really matter: the implementation of the business logic itself, in a more domain-driven designed way.
Thinking of a project delivery lifecycle, during the development phase with this business automation tool, we have a gain of productivity by quickly being able to validate the implemented business logic with the business team (who can now actually understand the implemented logic); by using comprehensible and easy maintainable business assets; and finally by taking advantage of the hot-reload feature and quick application bootstrap.
On the other hand during the execution of the Kogito business application, if the user decides to compile it to run in native mode with GraalVM, it is possible to reach business rule execution running 100 times faster and with 10x lower resource consumption if compared to execution within a JVM.
Needless to say, the startup time is superb in both modes — once started the application is ready to be accessed after boot, in other words, no additional processing happens on the app first access. Check out one of the Kogito example projects startup time:
In order to test the native mode, you have to set up GraalVM on your machine. Kogito is still on it's early days, and version 0.3.0 will be released during this week (August 2019).
Finally, it's worth saying an Openshift operator is also being released to allow cloud-native development and delivery of business applications in a Kubernetes based environment. With the Kogito operator, the user will be able to create a new Kogito application or deploy an existing one via UI or using a command-line tool. For example, using the command line, the user can create a new pod into Openshift simply by informing the git repository where the project is located:
kogito deploy my-kogito-app https://github.com/kiegroup/kogito-examples.git
Knowing the future of Business Automation, I suggest you try Kogito and join its open-source community. To try out Kogito with business processes and rules, follow the guide available here. You can choose to test it with Quarkus or Spring Boot.
Additionally, a new post with detailed steps and explanations on the complete onboarding Kogito example will soon be released. This example shows a full Human Resource onboarding application taking advantage of the power of Drools rules and BPMN diagrams. We will understand how does it work and how we can run it on an openshift environment using simple steps :)
If you have questions or need any help, feel free to get in touch!
Opinions expressed by DZone contributors are their own.