Architecture Overview
This page explains which components make up a Flowable installation, which of them you need, and how they connect.
The Flowable applications
Together, Flowable Design, Flowable Work and Flowable Hub make up the Flowable Agentic Case Platform. Each application is used by different people for a different job:

An app is what you build: a package of models, such as processes, cases, forms and agents. An environment is one installation of Flowable Work with its own data, for example development, test or production.
You need all three applications:
- In Flowable Design, you build apps and publish them to Flowable Work. You need Flowable Design in at least one place, and one Flowable Design can publish to several environments (see deploying to different environments).
- Flowable Work runs the published apps in every environment. End users work with it in the browser.
- With Flowable Hub, administrators monitor and operate Flowable Work, for example to inspect instances, retry failed jobs, look at incidents or manage users.
Give each environment its own Flowable Hub to keep the environments fully separate, or connect one Flowable Hub to several environments to run fewer servers (see the Flowable Hub installation).
We recommend that you always run Flowable Design, Flowable Work and Flowable Hub on the same version.
Flowable Hub replaces Flowable Control, which is deprecated.
The core setup
Every environment is built around Flowable Work and the services it stores its data in:

| Component | What it does |
|---|---|
| Flowable Work | The runtime application. It runs your processes, cases and agents, provides the REST APIs and serves the user interface for end users. |
| Database | Stores all runtime data. See the supported databases. |
| Elasticsearch | A copy of the database data, indexed for fast queries. Flowable uses it for instance lists, filtering, dashboards, application metrics, global search and chat. Straight-through processing without much task or reporting load can run without it. See the Elasticsearch requirements. |
| Content storage | Stores uploaded documents and attachments, on the file system, in the database or in cloud storage. See content storage. |
Flowable provides the applications. You provide the database, Elasticsearch, content storage and the optional infrastructure you need.
Optional infrastructure
Add these components when you need what they provide:
| Component | Add it when |
|---|---|
| Load balancer | You run more than one node of a Flowable application. It distributes requests across the nodes. See clustering. |
| Messaging queue (for example ActiveMQ) | You use chat (Flowable Engage). See the chat installation topics. |
| Redis | You run more than one node with OAuth2 and without sticky sessions. The nodes then share the HTTP session over Redis. See running more than one node. |
| Identity provider | You want users to log in with their company accounts instead of users managed in Flowable. For single sign-on, connect Flowable Work, Flowable Design and Flowable Hub to an OAuth2 provider such as Microsoft Entra ID, Keycloak or Okta. See the identity settings for Flowable Work, Flowable Design and Flowable Hub. |
| WhatsApp, WeChat or LINE adapters | You connect chat to WhatsApp, WeChat or LINE. See the chat installation topics. |
Chat with Flowable Engage
Flowable Engage is not a separate application. It is Flowable Work with chat features added: real-time conversations, chatbots, and conversations over WhatsApp, WeChat or LINE. You get it through the Flowable Engage dependencies in your own project or with the flowable-engage Docker image instead of flowable-work. In addition to the core setup, it needs the messaging queue and, for each messenger you connect, the adapter from the optional infrastructure. See the Flowable Engage User Guide.
Full deployment
The following diagram shows one environment together with Flowable Design, Flowable Hub and all optional infrastructure. Flowable Design and Flowable Hub can also serve other environments. The components in dashed boxes are optional.

How the components connect
- Browsers connect to Flowable Work, Flowable Design and Flowable Hub over HTTP(S), through the load balancer if you have one. Real-time chat conversations (Flowable Engage) additionally use WebSockets, so every network component in between, such as load balancers, proxies and firewalls, must support WebSockets (see the chat prerequisites).
- Flowable Work connects to the database over JDBC, to Elasticsearch over HTTP(S), and to the content storage you have configured.
- Flowable Design and Flowable Hub both use the REST APIs of Flowable Work: Flowable Design to publish apps, and Flowable Hub to monitor and operate the environment. They connect from their own servers, so they need network access to every Flowable Work environment they serve.
- With an identity provider, Flowable Work, Flowable Design and Flowable Hub connect to it over OAuth2.
- With more than one node, OAuth2 and no sticky sessions, the nodes of Flowable Work, Flowable Design and Flowable Hub connect to Redis.
- Flowable Design and Flowable Hub each need a database. It can be the same database as Flowable Work or a separate one.
- For chat, Flowable Work connects to the messaging queue over STOMP and JMS, and the adapters connect to the messaging queue over JMS and to the WhatsApp, WeChat or LINE servers over HTTPS.
- Flowable Work also connects to the systems your apps use, for example REST services, a mail server, event channels and AI model providers such as OpenAI, Anthropic or Azure OpenAI. Plan network access for these as well.
Running more than one node
Each Flowable application can run as several nodes behind a load balancer. The nodes of an application share its database. Flowable Work nodes also share Elasticsearch and the content storage, so content storage on the file system needs a file system that all nodes can reach. For the requirements, see clustering for Flowable Work, Flowable Design in cluster mode and running multiple Flowable Hub nodes.
Ways to deploy
The components and connections stay the same whichever way you deploy. You can run Flowable yourself, or let Flowable run it for you:
| Option | What you run | Suited for |
|---|---|---|
| WAR in a servlet container | The application WAR files in your own Apache Tomcat. | Your own servers. See the installation of Flowable Work, Flowable Design and Flowable Hub. |
| Executable WAR | The same WAR files, started directly with Java. This starts an embedded Tomcat. | Your own servers without a separate servlet container. See the executable WAR note for Flowable Work. |
| Your own Spring Boot project | Flowable Work built as your own Spring Boot application from the Flowable starters. | Your own Java code on top of Flowable Work. See the Spring Boot skeleton, the Flowable Work dependencies and, for chat, the Flowable Engage dependencies. |
| Docker Compose | The Flowable Docker images. | Trying Flowable on your own machine, not production. See installation with Docker. |
| Kubernetes with Helm | The Flowable Helm chart, which deploys the Flowable applications from the Docker images. | Production on Kubernetes. See the Flowable Helm chart. |
| Terraform on AWS or Azure | Example Terraform configuration that creates a Kubernetes cluster and a managed database, then deploys the Flowable Helm chart. | Infrastructure as code. See Terraform on AWS and Azure. |
| Flowable Cloud | Nothing. Flowable runs and maintains the installation for you, either on shared infrastructure or as a dedicated installation. | Flowable without your own infrastructure. See Flowable Cloud, Flowable Cloud Shared and Flowable Cloud Dedicated. |
Next steps
- Check the system requirements, including the hardware sizing, and the prerequisites.
- Pick a deployment option from ways to deploy.
- If one environment should serve several companies or departments with separate data, see multi-tenancy.
- Provide your license to each Flowable application. New customers receive it during onboarding, see license file renewal.
- Install Flowable Design and Flowable Hub.
- Set up Flowable Engage with the chat installation topics.
- Plan the operation of your installation: backup, version upgrades, monitoring and logging.
