Chapter 14. Kogito microservices in Red Hat Decision Manager

Kogito is a cloud-native business automation technology for building cloud-ready business applications. The name Kogito derives from the Latin "Cogito", as in "Cogito, ergo sum" ("I think, therefore I am"), and is pronounced [ˈkoː.d͡ʒi.to] (KO-jee-to). The letter K refers to Kubernetes, the base for Red Hat OpenShift Container Platform as the target cloud platform for Red Hat Decision Manager, and to the Knowledge Is Everything (KIE) open source business automation project from which Kogito originates.

Kogito in Red Hat Decision Manager is optimized for a hybrid cloud environment and adapts to your domain and tooling needs. The core objective of Kogito microservices is to help you mold a set of decisions into your own domain-specific cloud-native set of services.

Important

In Red Hat Decision Manager 7.11 version, Kogito support is limited to decision services, including Decision Model and Notation (DMN), Drools Rule Language (DRL), and Predictive Model Markup Language (PMML). This support will be improved and extended to Business Process Modeling Notation (BPMN) in a future release.

When you use Kogito, you are building a cloud-native application as a set of independent domain-specific microservices to achieve some business value. The decisions that you use to describe the target behavior are executed as part of the microservices that you create. The resulting microservices are highly distributed and scalable with no centralized orchestration service, and the runtime that your microservice uses is optimized for what is required.

As a business rules developer, you can use Kogito microservices in Red Hat Decision Manager to build cloud-native applications that adapt to your business domain and tooling.

14.1. Cloud-first priority

Kogito microservices are designed to run and scale on a cloud infrastructure. You can use Kogito microservices in Red Hat Decision Manager with the latest cloud-based technologies, such as Quarkus, to increase start times and instant scaling on container application platforms, such as Red Hat OpenShift Container Platform.

For example, Kogito microservices are compatible with the following technologies:

  • Red Hat OpenShift Container Platform is based on Kubernetes, and is the target platform for building and managing containerized applications.
  • Quarkus is a native Java stack for Kubernetes that you can use to build applications, using the Kogito microservices.
  • Spring Boot is an application framework that you can use to configure Spring Framework with Red Hat Decision Manager.

14.2. Kogito microservices on Quarkus and Spring Boot

The primary Java frameworks that Kogito microservices support are Quarkus and Spring Boot.

Quarkus is a Kubernetes-native Java framework with a container-first approach to building Java applications, especially for Java virtual machines (JVMs) such as OpenJDK HotSpot. Quarkus optimizes Java specifically for Kubernetes by reducing the size of both the Java application and container image footprint, eliminating some of the Java programming workload from previous generations, and reducing the amount of memory required to run those images.

For Kogito microservices, Quarkus is the preferred framework for optimal Kubernetes compatibility and enhanced developer features, such as live reload in development mode for advanced debugging.

Spring Boot is a Java-based framework for building standalone production-ready Spring applications. Spring Boot enables you to develop Spring applications with minimal configurations and without an entire Spring configuration setup.

For Kogito microservices, Spring Boot is supported for developers who need to use Red Hat Decision Manager in an existing Spring Framework environment.