Flowable vs Temporal

Choose Flowable when business analysts and process owners must model BPMN, CMMN and DMN and the engine runs inside a Java estate. Choose Temporal when developers in several languages need code-defined, durable workflows on a dedicated service cluster.

On this page

Flowable vs Temporal: when each one fits

Choose Flowable when the process model itself is the main artifact and business analysts or process designers need to author it in standards: BPMN for process flows, CMMN for case management and DMN for decision tables. Flowable's open-source engines are Apache-2.0 licensed, run embedded in a Java application or as a service, and expose Java and REST APIs, so the natural fit is a Java or Spring estate where human tasks belong to process owners. Choose Temporal when the workflow is application logic written by engineers in Go, Java, TypeScript or Python, and when long-running code needs a replayable event history and a dedicated server cluster. Temporal Server is MIT licensed, but it is a separate service you operate, not a library inside your application.

The decision turns on three questions. First, who authors and changes the process? If designers must edit flows without a deployment, the BPMN and CMMN tooling and the commercial Flowable products matter more than code. If developers own every change and review it in source control, Temporal's code-first model usually reads better. Second, which languages and runtime does the team already operate? A Java team on Spring Boot will find Flowable's starters and the Spring Boot 4 support in Flowable 8.0.0 a short path, while a polyglot team will need Temporal's SDKs. Confirm the Spring Boot and Java versions your platform standard requires before you assume either path is cheap.

Third, how much operations work will your team own? Flowable runs inside your existing application and database, so the main duties are the relational database, the async executor and upgrades to the engine. A self-hosted Temporal Service adds Frontend, History, Matching and Worker services plus a persistence store and, for advanced visibility, a separate search backend. Its default authorizer allows every request until you configure one, so access control is a day-one task. Ask any vendor or partner for a written scope covering these components before you compare quotes.

Which scenario favors Flowable or Temporal

This table maps common team scenarios to the platform that fits each one better, with the condition that makes it the better fit and the case where it is the wrong choice. Read each row as a question about who designs the process, what language the team writes in, and how work must be modeled and audited.

ScenarioBetter fitCondition that decides itWhere it is the wrong choice
Java bank running loan or account approval processesFlowableThe business analysts need BPMN models that the Java team executes directly, and the process runs embedded in an existing Java application or Spring service.Teams with no Java skills in-house or no need for a standards-based process model owned by non-developers.
Insurer with claims case management and rule-driven decisionsFlowableWork is unpredictable and needs CMMN case management alongside BPMN, and decision logic should live in DMN tables that business owners can review.Pure service-to-service orchestration with no human tasks or case handling, where CMMN and DMN add modeling weight without value.
Platform team writing payment or provisioning logic in Go or TypeScriptTemporalWorkflows must be written as code in the team's own language, and retries, timers and recovery after failure must follow from a complete ordered event history that replays the workflow.Teams that want business users to draw and change the process themselves, since Temporal workflows are authored by developers.
Polyglot microservices estate with services in several languagesTemporalMultiple language SDKs are needed against one workflow service, and the team accepts running a separate Temporal Service cluster with its persistence store.A single Java estate where an embedded library is simpler to deploy and debug than a separate server cluster.
Human approval steps that must be visible to auditors as a standard modelFlowableAuditors or process owners expect BPMN diagrams as the artifact of record, and the engine's Java and REST APIs can expose task state to existing tools.Workflows whose logic is mostly code with no need for a diagram as the reviewed artifact.
Long-running application logic that must survive process and node failuresTemporalThe team needs durable execution with a replayable event history, and it is prepared to operate the Frontend, History, Matching and Worker services and their persistence store.Small internal jobs where operating a dedicated workflow cluster costs more effort than the failure cases justify.
Team already running Spring Boot 3 applicationsFlowableUpgrading to Flowable 8.0.0 means moving to Spring Boot 4, since that release drops Spring Boot 3 support, so the team must confirm its upgrade path before choosing.Teams that cannot move to Spring Boot 4 on their schedule and have no other Java upgrade path.
Organization requiring strict access control on the workflow service from day oneTemporalThe team will configure an Authorizer, mTLS and OIDC for the Web UI, because a self-hosted Temporal Service with no Authorizer allows every API request.Teams that cannot staff the security configuration of a self-hosted cluster and would otherwise rely on defaults.

How Flowable and Temporal are built and deployed

Flowable and Temporal both keep process state in a database, but they arrange the runtime differently. Flowable runs inside an application you own or as a REST service, while Temporal runs as its own cluster of services. The cards below show what each shape asks of the team that operates it.

Flowable as an embedded JAR

Flowable's engines can be embedded as a JAR in Java SE applications, servlet containers such as Tomcat or Jetty, Spring applications or Java EE servers. The process engine then deploys with your application, shares its release cycle and uses its JVM, so your Java team owns patching, scaling and the engine's configuration. Check whether your application servers and JVM versions match the Spring Framework 7 and Spring Boot 4 line that Flowable 8.0.0 requires, because Spring Boot 3 is no longer supported.

Flowable as a REST service

The same engines can be run over HTTP through the Flowable REST application, which lets teams that are not Java-first call process APIs from other services. This keeps the engine in one place, but it adds a service to secure, monitor and back up, and the REST layer's access controls become part of your identity design. Confirm which REST endpoints your integrations need and who may start, complete or administer processes before you choose this shape.

Temporal's four-service cluster

A self-hosted Temporal Service runs Frontend, History, Matching and Worker services, plus persistence and visibility stores. Your platform team operates this cluster as its own system rather than as part of an application. The Temporal deployment docs advise running services on hosts not reachable from the public internet, so plan network segmentation and certificate handling as first-class work. Deployment options include Docker Compose, Go binaries and Helm charts, and Helm chart versions below 0.73.1 do not work with server images 1.30 and later.

Flowable's async executor and locks

Flowable's async executor runs timers and asynchronous jobs from a thread pool, and coordinates nodes through lock owners and lock expiration times stored in the database. If a node dies, an expired lock lets another node pick up the job, but this only works if all nodes share a healthy database and clocks. Your team should confirm lock timeouts, pool sizes and database capacity under peak load, since the database becomes the shared coordination point for every running process.

Temporal's persistence choices

Temporal's persistence is tested on Cassandra, PostgreSQL 13 to 16 and MySQL 5.7 or 8.0.19 and later, while SQLite is meant only for development and testing. Every workflow's ordered event history lives in this store, so it becomes the shared dependency for the whole cluster. Advanced visibility adds a separate store, and Elasticsearch or OpenSearch is recommended beyond a few workflow executions. Decide early which database your DBAs can operate, and ask for the backup and restore procedure for both stores together.

Flowable vs Temporal on capabilities and operations

This table compares how Flowable and Temporal differ in modeling standard, authoring, SDKs, deployment, persistence, visibility, security defaults and commercial layers. Read each row as a question to settle in your own environment, and treat any cell that says to confirm as an open item for a proof of concept.

CapabilityFlowable (open-source engines)Temporal (self-hosted Temporal Service)
Modeling standardBPMN, CMMN and DMN are supported as standards, with process, case and decision enginesWorkflows are written as code, with no BPMN, CMMN or DMN model as the source of truth
Who authors definitionsProcess analysts and developers can model in standard notation, though visual tooling is a commercial layerSoftware engineers author workflows in Go, Java, TypeScript or Python
Human task handlingHuman tasks are part of the BPMN and CMMN model; confirm task inbox, forms and assignment needs against the engine docsHuman steps are modeled in code, often with signals; confirm the UI and assignment patterns your teams need in a proof of concept
Language and SDK supportJava APIs and REST APIs; embeds in Java SE, servlet containers, Spring and Java EEGo, Java, TypeScript and Python workflow code; REST and client SDK access depends on your design
Deployment modelEmbedded JAR in a Java application or run as a service over HTTPSelf-hosted cluster of Frontend, History, Matching and Worker services, deployable with Docker Compose, Go binaries or Helm
Database optionsH2, MySQL, Oracle, PostgreSQL, DB2 and Microsoft SQL Server are listed as supported database typesCassandra, PostgreSQL and MySQL for persistence; SQLite is for development only
Visibility and searchProcess state is queried through the Java and REST APIs; confirm search and reporting needs against the docsAdvanced visibility uses Elasticsearch or OpenSearch for scale; PostgreSQL, MySQL and SQLite options exist with limits; confirm version fit
Authentication and authorization defaultsIdentity management can be replaced by implementing the identity service interface, with an LDAP reference implementationDefault noopAuthorizer allows every API request until an Authorizer is configured; enable mTLS, a ClaimMapper and an Authorizer before exposure
Encryption and codec optionsConfirm encryption of data at rest and in transit with your database and transport configurationPayload encryption through custom codecs and a codec server; mTLS for internode and frontend traffic
Commercial layerApache-2.0 engines; Flowable sells a separate commercial platform on top with low-code modeling, monitoring and governanceMIT server; Temporal Cloud is a managed service with its own pricing, SLA and SAML SSO

What Flowable and Temporal license and charge for

The Flowable open-source engines for BPMN, CMMN and DMN are licensed under Apache-2.0, according to the Flowable open source page. You can embed them in a Java application or run them as a service, and the license places no separate charge on the engines themselves. Flowable also sells a separate commercial platform, including Flowable Work, Engage, Orchestrate and Design, which is built on the same engines and adds low-code modeling, visual debugging, security controls, monitoring and governance.

  • Open-source engines: Apache-2.0 covers the BPMN, CMMN and DMN engines, their Java and REST APIs, and the Spring Boot starters.
  • Commercial platform: Flowable Work, Engage, Orchestrate and Design are sold separately and add the visual and governance features listed above.
  • Community support: open-source users get a community forum.
  • Paid services: professional services and partners are offered separately, so implementation, upgrades and training are a quoted cost.
  • Upgrade cost: Flowable 8.0.0 drops Spring Boot 3 support, so teams on Spring Boot 3 face a migration effort that is separate from any license fee.

Confirm with Flowable which commercial components your use needs, and ask for the support terms in writing before you commit to a commercial tier.

What drives the running cost of each platform

Both platforms cost money through infrastructure, people and upgrade work, but the shape differs. Flowable runs inside your Java applications, while self-hosted Temporal adds a separate service cluster. The cards below set out who pays for what, what recurs and what to ask for before committing.

Application nodes and database

Flowable's engine runs embedded in your Java application or as a service, so its main infrastructure is the application nodes and the relational database they share. Its async executor coordinates nodes through lock owners and lock expiration times stored in that database, so the database is a shared dependency whose sizing and high availability you must plan. Self-hosted Temporal needs its own server roles, so the infrastructure line is larger. Ask any vendor or partner to price the nodes, database tier and backups for your expected volume.

Temporal service roles and stores

A self-hosted Temporal Service runs Frontend, History, Matching and Worker services, plus a persistence store and a visibility store. The supported persistence options are Cassandra, PostgreSQL and MySQL. Cassandra deployments must add a separate visibility store, and Elasticsearch or OpenSearch is recommended once executions grow beyond a few. Each of these components adds hosts, backups and monitoring, which recur every month whether or not workflows are busy.

Skills and staffing

Flowable cost follows Java and Spring expertise, which many enterprise teams already have for their core applications. Temporal cost follows SDK work and distributed systems expertise: determinism rules in workflow code, replay behavior and cluster operations. Expect a learning curve for either platform, and budget for the team that will own the platform after go-live. Ask a partner to name the roles in the scope and to state which skills it expects your staff to hold.

Upgrade effort

Flowable 8.0.0 moved to Spring Framework 7 and Spring Boot 4 and dropped Spring Boot 3, so applications on Spring Boot 3 need code and dependency work before they can take the new engine. Temporal recommends upgrading one minor version at a time, moving to the latest patch of the current minor first, and running schema upgrades before server upgrades when release notes call for them. Plan upgrade windows, test runs and rollback steps as recurring work for both platforms.

Support and managed pricing

Support for Flowable open source comes from a community forum, while professional services and partners are offered separately. Temporal Cloud is a managed alternative that moves the cluster operation to the vendor. Its pay-as-you-go pricing starts at 50 US dollars per million actions, with active storage at 0.042 dollars per GB-hour and retained storage at 0.00105 dollars per GB-hour, according to the Temporal pricing page. Those are list figures, so confirm current rates and the volume your workflows generate. DeployOpen does not publish prices; a quote follows from the written scope.

Where Flowable and Temporal implementation projects run long

On the Flowable side, the long stretch is usually modeling and governance rather than engine setup. BPMN, CMMN and DMN artifacts need owners, review steps, versioning rules and a deployment path from design tools into each environment, and those rules must be agreed before the first process goes live. Identity is the other common delay. Flowable's docs say identity management can be replaced by overriding IdmIdentityServiceImpl or by implementing the IdmIdentityService interface, and an LDAP implementation is provided as a reference. Confirm early which directory holds users and groups, whether group membership is resolved at task assignment, and who writes and tests that service. Database choice, async executor tuning (lock owners and lock expiration in the database) and, for version 8, the move to Spring Framework 7 and Spring Boot 4 with no Spring Boot 3 support, each add testing time that is easy to underestimate. DeployOpen can plan, implement and document this work under a fixed-scope agreement, with scope, deliverables and timelines agreed in writing before work starts. Ask for the modeling governance and identity integration to be listed as separate deliverables.

On the Temporal side, the long stretch sits in platform security and in developer discipline. A self-hosted Temporal Service needs a persistence store and, for advanced visibility, a separate Elasticsearch or OpenSearch store for anything beyond a few workflow executions, so the choice between the supported persistence options should be made and reviewed before deployment. Security is the most urgent item: if no Authorizer is configured, the default noopAuthorizer allows every API request with no authentication or access control. Teams then need mTLS with separate internode and frontend settings, a ClaimMapper that maps JWT or certificate claims to namespace roles, an Authorizer plugin, and OIDC single sign-on for the Web UI. Payload encryption through custom codecs and a codec server is another design decision, since it changes what operators can see in the UI. Developers also need to learn that workflow code must be deterministic on replay, so changes to a running workflow require versioning discipline and tests that replay existing histories. DeployOpen can plan, implement and document these controls in a fixed-scope engagement. Before scoping, confirm with your own security team which identity provider and certificate authority will be used, and which developers will own versioning reviews.

Moving a process estate from one platform to the other

This sequence moves a set of running business processes between Flowable and Temporal without stopping work in flight, and ends with a documented cutover and a retired source platform.

  1. Inventory definitions and running instances

    Your process owners and platform team list every deployed process or workflow, its owner, its trigger, its volume of running instances, and the systems it calls. For Flowable, export deployed BPMN, CMMN and DMN artifacts and query active process instances, timers and async jobs through the Java or REST APIs. For Temporal, list workflow types, open executions, schedules and the activities they depend on. The output is a register that marks each process as keep running, migrate, rebuild or retire, with its in-flight instance count recorded.

  2. Decide which assets transfer and which are rebuilt

    Architects review each process and decide whether it moves as a definition or is rewritten. BPMN, CMMN and DMN artifacts do not map one-to-one to Temporal workflow code: gateways, boundary events, case plan items and decision tables each need an explicit design in Go, Java, TypeScript or Python, and DMN rules usually become ordinary functions or a separate rules service. Temporal's ordered event history is not a Flowable history table, so audit and reporting requirements must be redesigned rather than copied. The output is a signed decision per process, with the reason recorded.

  3. Map identity, roles and task assignment

    Your identity team documents how users, groups and roles are resolved today in Flowable, including any custom identity service that replaces the default IdmIdentityService, and how Temporal namespace roles will be granted through its ClaimMapper and Authorizer. Human task assignment rules are written down in both platforms' terms. Confirm with your identity provider team which OIDC or certificate claims carry roles. The output is a role matrix that shows every human task and who may act on it in each platform.

  4. Run both platforms in parallel for new work

    New process starts are routed to the target platform for a pilot group while existing instances continue on Flowable. Operations staff run monitoring, alerting and backup routines against both estates, including Flowable's actuator endpoint and Temporal's service metrics. Temporal deployments should keep their services on hosts not reachable from the public internet, and Temporal's upgrade guidance applies from the first day. The output is a dated record of routed starts, incidents and rollback tests.

  5. Drain or migrate in-flight instances

    For each process, choose one of three paths: let existing Flowable instances finish, migrate the instances whose state can be reproduced in the new workflow code, or restart from a defined checkpoint with a compensating action agreed with the business owner. Test each path against a copy of production data. The output is a per-process cutover record showing the instance count drained, migrated or restarted, and any instances that needed manual handling.

  6. Prove the migration with one real process and a rollback plan

    Before any broad move, run a proof of concept on one real, bounded process with a measurable success check, such as matching outputs against the legacy run for the same inputs. Write the rollback plan in advance: which routing switch reverts new starts, how Flowable instances are kept recoverable, and who approves the revert. Rehearse the rollback in a non-production environment. The output is a signed proof-of-concept report and a rollback runbook that the business owner has accepted.

  7. Decommission the source platform

    Once no instances remain and the retention period for audit records is met, the source estate is shut down in order: stop job executors, archive the database and artifacts, revoke service accounts, and remove routing. Confirm with your compliance team what evidence must be retained and where it lives. The output is a decommissioning record that lists the archived databases, the retained evidence and the removed credentials.

Questions buyers ask before choosing Flowable or Temporal

How much effort does it take to self-host Flowable versus Temporal?

Flowable is usually run inside an existing Java application, so the effort follows the application: a Spring Boot or servlet deployment, a relational database from the supported list, and the team's normal build and release pipeline. Temporal is a separate platform: a self-hosted Temporal Service runs Frontend, History, Matching and Worker services plus a persistence store and, for advanced visibility, a search store. The Temporal deployment docs also say services should sit on hosts not reachable from the public internet. Your internal team needs Java or Go operations skill for the first, and Kubernetes or container operations plus database administration for the second. Ask any implementation partner to split its quote into application integration and platform operations so you can see where the effort lands.

Can business analysts change processes without developers on each platform?

In Flowable's open-source engines, process models are BPMN, CMMN and DMN files that analysts can read, but editing and deploying them normally goes through developers. The low-code modeling, visual debugging and governance layers are part of Flowable's commercial products, so confirm with Flowable which of those your edition includes. Temporal workflows are written in general-purpose languages such as Go, Java, TypeScript and Python, so process changes are code changes that developers own and test. If analysts must edit flows directly, make that requirement explicit in the scope before choosing either platform, because it can change the answer on its own.

Can our team run the implementation alone, or should we hire outside help?

A team with a Java platform group can often run a Flowable embedding itself, since the engine is an Apache-2.0 library with Java and REST APIs and documented Spring Boot starters. A team with Go, Java, TypeScript or Python developers and no platform engineers usually needs help with the Temporal cluster, persistence choice, upgrades and security settings. The Temporal security docs state that the default noopAuthorizer allows every API request until an Authorizer is configured, so access control design deserves review either way. Outside help is most useful for hardening, identity integration, backup and upgrade runbooks and compliance evidence. DeployOpen plans, implements, hardens, backs up, upgrades and documents self-hosted platforms in your own infrastructure, and you can compare that scope with internal capacity.

What does a fixed-scope engagement cover, and what do retainers add?

Most DeployOpen engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. For a workflow platform, that scope typically names the engine or cluster to deploy, the database and identity integration, the process or workflow set to build, the hardening and backup work, and the documentation handed over. Ongoing support, upgrades and continuous testing are available as retainers, which recur. Ask for the list of deliverables, what is excluded, the acceptance criteria, and who maintains the result after handover. DeployOpen does not publish a price list, so a quote follows from the written scope.

How long does a pilot take, and what sets that duration?

No supplied figure fixes a pilot duration for either platform, so treat any number you hear as unverified until it is tied to a written scope. The main drivers are the number of processes or workflows in the pilot, whether the pilot needs a production-grade database and cluster or only a development setup, identity and single sign-on integration, the number of external systems called, and whether your team has the language skills for the chosen SDK or Java embedding. For Temporal, the upgrade rules for the server and the persistence choice add planning steps. Ask for a milestone plan with a named exit criterion for the pilot.

Do Flowable's commercial layer or Temporal Cloud change the decision?

They can. Flowable sells a commercial platform built on the same engines, adding low-code modeling, visual debugging, security controls, monitoring and governance, and it offers professional services and partners separately, while open-source users get a community forum. Temporal Cloud is a managed service from Temporal Technologies, and its published pay-as-you-go pricing starts at 50 US dollars per million actions, with a 99.9% SLA or 99.99% with high availability and SAML SSO. Those figures come from the vendors' pages and change over time, so confirm current terms directly. If managed operations or the low-code layer is a hard requirement, price the commercial option alongside the open-source one, since that choice can outweigh the engine comparison itself.

What should we ask for in a quote for either platform?

Ask for a written scope that lists each platform component to be deployed, the number of environments, the database and any search or visibility store, identity and single sign-on integration, and the process or workflow count. Request a breakdown separating one-time work such as design, build and hardening from recurring items such as upgrades, monitoring and retainer support. Ask which vendor licenses or subscriptions are required and which are not, and who pays for each. Confirm the upgrade plan for the chosen release line, including how schema migrations are sequenced, and request the handover documentation and acceptance criteria in writing.

How DeployOpen helps you choose, implement or migrate

DeployOpen is a Chainscore Labs company that plans, implements, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. We approach Flowable vs Temporal as a scoped engagement, starting from the process types, team skills and operating model you actually have, not from a default engine choice.

How we scope

  • We confirm which processes are modeled as BPMN, CMMN or DMN artifacts and which are code-first workflows with long-running state.
  • We document the Java, polyglot SDK, database and identity requirements that the written scope must cover.
  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before any work starts.

How we build

  • We deploy the chosen engine in your environment, either embedded in your Java applications or as a self-hosted Temporal Service with its persistence and visibility stores.
  • We configure identity, mTLS, authorization and network restrictions against your existing directory and security standards.
  • We test failure recovery, retries, timers and upgrade paths in your own environment before handover.

How we hand over

  • We deliver architecture notes, runbooks, configuration records and evidence that your auditors or assessors can review.
  • We train your engineers on the modeling or workflow-code practices the chosen platform requires day to day.
  • We document upgrade sequencing, backup procedures and the decisions behind the platform choice for future owners.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers, scoped in writing.
  • We can plan version upgrades against each vendor's published compatibility and release guidance.
  • If you later move between Flowable and Temporal, we can scope the migration of process definitions, state and operational runbooks separately.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.