SonataFlow Guides

Kogito Serverless Workflow is a tool for building cloud-native workflow applications. You can use it to do the services and events orchestration and choreography. Currently, with Kogito Serverless Workflow you can integrate with services and events in your architecture using:

  1. CloudEvents. Ideal for an Event-Driven architecture where the services are ready to consume and produce events working in a more reactive way.

  2. Sync or Async REST services invocations via OpenAPI/Async API. There are options even to directly call a REST service in the architecture or ecosystem. Either async or sync methods are supported depending on your requirements.

  3. Internal Service execution or invocation. Kogito Serverless Workflow is also a workflow framework to build applications. You can use it to create custom services in the same thread to run a lightweight workflow-based application within the same instance.

You can learn how to create, manage, and deploy your workflow applications with the following guides.

Getting started

Learn how to create your first Serverless Workflow project

Learn about the CNCF Serverless Workflow Specification implementation

Learn which tools you can use to author your workflow assets

Core

Learn about the custom functions supported by Serverless Workflow

Learn how to create jq expressions to manipulate data within a workflow execution

Learn how to handle errors in your workflow application

Working with parallelism in your workflow service

Quick reference of configuration properties in workflow

Learn about the input schema definition used to validate the workflow data input against a defined JSON Schema

Learn how to configure timeouts in the workflow

Tooling

Learn how to install and use the Serverless Workflow editor

Learn how to use the Serverless Workflow extension in Quarkus Dev UI

Learn how to install the Serverless Workflow plug-in for Knative CLI

Learn how to use Serverless Logic Web Tools for creating and managing workflows, decisions, and dashboards.

Service Orchestration

Learn how to orchestrate REST services using OpenAPI specification descriptors

Learn how to trigger and consume events using AsyncAPI specification descriptors

Learn how to configure OpenAPI services endpoints in different environments

Learn about orchestrating gRPC services

Eventing

Learn how to use the Event state in your workflow application

Learn how to use the Callback state in your workflow application

Learn how to configure your Serverless Workflow application to produce and consume events using Apache Kafka

Learn how to configure your Serverless Workflow application to produce and consume events on Knative Eventing

Learn how to configure event correlation in your workflow application

Learn how to use the OpenAPI Callback in your workflow application

Security

Learn how to use authentication methods when calling REST services using OpenAPI specification

Learn about the OAuth2 method support when orchestrating REST services using your workflow application

Testing and Troubleshooting

Learn how to add unit tests in your workflow application using RestAssured

Learn how to integrate tests on workflow applications that use PostgreSQL as a persistence storage

Learn how to mock external REST requests when testing your Serverless Workflow applications

Testing Serverless Workflow application that uses HTTP CloudEvents and Knative Sink Binding

Persistence

Running Serverless Workflow service using PostgresSQL

Migrating your existing PostgreSQL Database with changes from the Kogito upgrade using Flyway

Cloud

Learn how to build images for your workflow applications using Quarkus CLI

Learn what is and how the Kubernetes service discovery for workflow application configuration works

Learn how to deploy your workflow application on Minikube for local tests and development

Learn how to deploy your workflow application on Kubernetes

Learn how to build and deploy your workflow application on Kubernetes using the Kogito Serverless Workflow Operator

Use Cases

Learn how and when to use the SAGA pattern in your workflow projects

Learn how and when to use timeout in your workflow projects

Integrations

Learn how to use Camel Routes within your workflow application

Learn how to invoke Knative services from Serverless Workflow custom functions

Learn how to use dashboards to display the runtime data of your workflow application

Exposing the workflow base metrics to Prometheus