IBM Business Automation Manager Open Editions

IBM BAMOE is a cloud-native business automation technology for building cloud-ready business applications. It is built from various Open Source projects including Drools, jBPM, and Kogito. The name Kogito is derived 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 OpenShift as the target cloud platform for IBM BAMOE, and to the Knowledge Is Everything (KIE) open source business automation project from which IBM BAMOE originates.

IBM BAMOE is optimized for a hybrid cloud environment and adapts to your domain and tooling needs. The core objective of IBM BAMOE is to help you mold a set of business processes and decisions into your own domain-specific cloud-native set of services.

Image of business assets moving to cloud services
Figure 1. Business processes and decisions to cloud services

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

IBM BAMOE includes components that are based on well-known business automation KIE projects, specifically Drools, jBPM, and Kogito, to offer dependable open source solutions for business rules, business processes, and constraint solving. The full KIE Community can be found at https://kie.org. Blog posts are available at https://blog.kie.org.

Cloud-first priority

IBM BAMOE is designed to run and scale on a cloud infrastructure. You can use IBM BAMOE with the latest cloud-based technologies, such as Quarkus, Knative, and Apache Kafka, to increase start times and instant scaling on container application platforms, such as OpenShift.

Image of cloud-based technologies
Figure 2. Technologies used with IBM BAMOE

For example, IBM BAMOE is compatible with the following technologies:

  • OpenShift, based on Kubernetes, is the target platform for building and managing containerized applications.

  • Quarkus is native Java stack for Kubernetes that you can use to build applications with IBM BAMOE services.

  • GraalVM with Quarkus enables you to use native compilation with IBM BAMOE, resulting in fast start-up times and minimal footprint. For example, a native IBM BAMOE service starts in about 0.003ms, about 100 times faster than a non-native start-up. Fast start-up is almost a necessity in a cloud ecosystem, especially if you need small serverless applications.

  • Knative enables you to build serverless applications with IBM BAMOE that you can scale up or down (to zero) as needed.

  • Prometheus and Grafana are compatible with IBM BAMOE services for monitoring and analytics with optional extensions.

  • Kafka and Keycloak are middleware technologies that IBM BAMOE supports for messaging and security.

Domain-specific flexibility

IBM BAMOE adapts to your business domain instead of forcing you to modify your domain to work with IBM BAMOE. You can expose your IBM BAMOE services with domain-specific APIs, based on the processes and decisions that you have defined. Domain-specific APIs for IBM BAMOE services do not require third-party or internal APIs.

For example, a process for onboarding employees could generate remote REST API endpoints that you can use to onboard new employees or get information on their status, all using domain-specific JSON data.

Image of REST API endpoints in Swagger UI
Figure 3. Example custom API endpoints in Swagger

You can also expose domain-specific data through events so that the data can be consumed and queried by other services.

Developer-centered experience

Another focus of IBM BAMOE is optimal developer experience. You can use much or all of your existing tooling and workflow to develop, build, and deploy IBM BAMOE services, whether locally for testing or into the cloud. Quarkus offers development-mode features to help with local testing, such as live reload of your processes and decisions in your running applications for advanced debugging.

IBM BAMOE tooling is embeddable so that you can continue using the workflow you already use for cloud-native services. For example, the IBM BAMOE Developer Tools for VS Code enables you to edit your Business Process Model and Notation (BPMN) 2.0 business processes and Decision Model and Notation (DMN) decision models directly in your VSCode IDE, next to your other application code.

Demo of IBM BAMOE BPMN2 extension in VSCode
Figure 4. Building a IBM BAMOE process service in VSCode