Flowable embedded in SaaS products

A planning guide for SaaS teams embedding Flowable engines in a multi-tenant product, covering tenant isolation, per-customer process versions, safe customer configuration and engine scaling.

On this page

Why embed Flowable in a SaaS product and what changes for your architecture

A SaaS product team that needs customer-specific workflows without forking code per customer can embed Flowable's engines directly in the product. Flowable open source provides compact Java engines for BPMN process execution, CMMN case management and DMN decision rules, licensed under Apache 2.0 and exposed through Java and REST APIs. The engines run inside your application, so customer differences are expressed as deployed models, variables and configuration rather than as branches in your codebase. The first architectural change is that tenancy becomes a process design concern, not only a database concern. Each running instance, deployed definition, decision table, task assignment and history record has to be attributable to one customer, and the engine will not enforce that boundary for you. Confirm in the Flowable version you plan to use whether the engine offers a tenant identifier on deployments and runtime objects, how queries filter by it, and which APIs bypass it. Decide early whether tenants share one engine and schema or run separate ones, because that choice determines how you isolate definitions, jobs and history. The embedding options come from the Flowable getting started guide. You can add the engine as a JAR in a Java SE application, run it in a servlet container such as Tomcat or Jetty, embed it in a Spring application or a Java EE server, or call it over HTTP through the Flowable REST application. A SaaS team usually picks the option that matches its existing service model. Do not assume the engine has a built-in tenant model you can rely on until your team has verified it against the documentation and a proof of concept, and read the Flowable getting started guide before fixing the architecture.

Multi-tenant requirements SaaS buyers and auditors will test

This table lists the obligations a SaaS provider embedding Flowable will face from customers, auditors and EU law, with the design consequence for each. Read it as a set of design inputs to settle before tenant data and process versions are built, not as evidence of compliance. Whether the provider itself meets SOC 2 or any other standard is decided by an independent auditor.

RequirementSourceWhat it means for the build
Tenant isolation of data and process variablesGDPR Article 28(3) processor instructions; Article 32 security of processingSet a tenant ID on every process instance, variable, history record and job, and enforce it in your application layer. Document processing instructions per customer and confirm how Flowable's shared database tables are partitioned for your chosen database.
Security and confidentiality of customer dataSOC 2 Trust Services Criteria, security common criteria CC1 to CC9 and confidentialityMap access to engine REST APIs, admin consoles and database roles to tenant boundaries. Keep evidence of access reviews, change records and logging, since an auditor will sample them over a period for a Type 2 report.
Customer portability and switchingEU Data Act Articles 23, 25 and 50 (two-month maximum notice, 30-day transitional period)Design exports of tenant process definitions, running instances and history in a documented format. Confirm with your team that a customer can move to another provider or on-premises infrastructure within the notice and transition periods.
Switching chargesEU Data Act Article 29: no switching charges from 12 January 2027; until then, reduced charges may not exceed costs directly linked to switchingTrack the cost of data export and migration work separately so that pricing and contract terms can comply from the 12 January 2027 date. Ask counsel how this applies to your pricing model.
Product obligations for software vendorsCyber Resilience Act, Regulation (EU) 2024/2847, applies to products with digital elements from 11 December 2027If your product includes Flowable and is placed on the EU market, define which components you supply, maintain a vulnerability handling process and check conformity assessment routes with counsel. Most products follow self-assessment under module A.
Supplier role under NIS2NIS2 Annex I: cloud computing and managed service providers as high-criticality sectors; Implementing Regulation (EU) 2024/2690 for technical measuresIf you operate the engines for customers as a cloud or managed service, confirm whether NIS2 applies to your organization and which technical measures in 2024/2690 apply to you. Plan incident reporting and supply chain controls around Flowable upgrades.
Buyer evidence requestsSOC 2 report types (Type 1 as of a date, Type 2 over a period); ISO/IEC 27001:2022 certification by accredited bodiesAsk customers which report or certificate they need, since SOC 2 reports are generally restricted use. Decide early which evidence you can produce from engine logs, history and configuration records.

How tenant IDs map to process definitions, instances and history

Start by deciding where tenant identity lives, because it determines what every later layer inherits. A tenant touches three layers in a Flowable engine: deployed process definitions, running process instances with their variables, and history. Each layer can carry a tenant ID, but the engine does not enforce tenant boundaries for you. Your application must set the tenant on deployments and starts, filter every query and task lookup by tenant, and refuse requests where the caller's tenant does not match the object being read. Confirm with the Flowable version you plan to ship, including the 8.0.0 line, how tenant IDs are handled in deployment APIs, definition queries, task queries and history queries, and whether any admin endpoint returns cross-tenant results.

The two common patterns are one shared engine with a tenant ID on definitions and instances, or a dedicated engine or database schema per tenant. A shared engine keeps operating cost and upgrade work to one set of nodes, and per-customer process versions are simply definitions with the same key and different tenant IDs. Its weakness is blast radius: a bad deployment, a runaway job or a query missing its tenant filter affects many customers at once. A dedicated engine or schema per tenant isolates data and failures and simplifies deleting or exporting one customer's data, but every upgrade, backup and async executor configuration multiplies by the number of tenants. Ask your team to price both patterns against your expected tenant count, your upgrade cadence and your contractual isolation promises.

Variables and history need the same scrutiny as the definitions. Process variables often hold customer names, account identifiers, addresses or free text, and history tables keep copies of those values for as long as your retention rules say. Decide which variables are stored, which are transient, and how a customer's data is removed from history when a contract ends or a deletion request arrives. Map these decisions to the data processor duties in your agreements with customers, and involve your privacy lead before the first tenant onboards.

Choosing a tenancy model: shared engine, schema per tenant or engine per tenant

A single Flowable engine serves all customers. Tenant identity is carried on deployments, process instances, tasks and variables, and your application filters every query and API call by tenant. This keeps the number of runtime components small and makes one upgrade cycle cover every customer. The cost is that isolation depends on your code and configuration rather than on separate infrastructure, so a missed tenant filter can expose data across customers.

  • Isolation strength: Logical only. Tenant scoping in deployments, definitions and queries is enforced by your application, and it should be tested with cross-tenant access cases.
  • Operational load: Lowest. One engine, one database and one upgrade path, with one set of monitoring and backups.
  • Per-customer process versions: Deployed as tenant-tagged definitions in the same engine. Confirm how your deployment pipeline names and filters them, and how running instances keep their original version.
  • Scaling behavior: Scales by adding nodes that share the database. Heavy tenants can affect others through the async executor, history volume and database contention, so confirm job and history limits per tenant.

Confirm with your team whether a logical boundary meets your customers' contractual and audit requirements, and whether you need per-tenant quotas or noisy-neighbor controls.

Flowable settings and integration points that matter in a SaaS build

A multi-tenant product needs Flowable's integration surface, identity hooks, job execution, monitoring and database choices to agree with how tenants are isolated and how nodes scale. Each card below is a setting or extension point to decide early, because changing it after tenants are live is harder.

Spring Boot starters and REST application

Flowable ships starters for all engines, for REST, and for the individual BPMN, CMMN and DMN engines, so you can embed the engines in your own service or run the REST application beside your product. Decide which surface your product calls. Embedding keeps tenant logic in your codebase, while the REST application adds a network boundary and a separate deployment to secure and scale. Confirm the starter versions against the Spring Boot version your product uses.

Identity service replacement for tenant users

Flowable resolves users and groups through its identity management service, which you can replace by overriding IdmIdentityServiceImpl or implementing the IdmIdentityService interface. Use this to map task assignees and candidate groups to your product's tenant users and roles, so a tenant administrator sees only their own people. Check that every lookup is scoped to the tenant, because the engine will not do that filtering for you.

Async executor and lock ownership

The async executor runs timers and asynchronous jobs from a thread pool, and nodes coordinate through lock owners and lock expiration times stored in the database. An expired lock is recovered, so another node picks up the job. Plan the executor settings per node and per tenant load, and test what happens when a node stops mid-job. Lock expiration that is too long delays recovery, while one that is too short risks duplicate execution.

Actuator endpoint for running processes

The Spring Boot integration exposes an actuator endpoint at /actuator/flowable for monitoring running processes. Expose it only on an internal management port and route it through your observability stack, because it reveals operational detail about tenants' running work. Agree in advance which signals each tenant-facing support team needs, and whether those views must filter by tenant ID.

Supported databases and the MySQL precision note

Flowable's configuration docs list H2, MySQL, Oracle, PostgreSQL, DB2 and Microsoft SQL Server as supported database types. The docs note that MySQL versions below 5.6.4 lack millisecond precision, which affects timer and job timing. Choose the database before tenant data grows, and confirm the supported version of your chosen engine with the docs and your own tests, since a migration later is costly.

Tenant-aware delegates and expressions

Service tasks and listeners call product services through delegates and expressions. Pass the tenant ID explicitly as a process variable or through the execution context, and have each delegate resolve tenant-scoped configuration and credentials before it calls out. Avoid expressions that run arbitrary scripts with product privileges. Review every delegate as code that runs on behalf of many customers.

Running per-customer process versions without forking the product

The core design decision in a multi-tenant Flowable product is to keep one codebase and one engine deployment while letting each customer own a distinct version of a process definition. Flowable stores process definitions as deployments, and each deployment produces versioned definitions identified by key, version and tenant. In practice this means each customer's BPMN, CMMN or DMN files are deployed under that customer's tenant ID, so a change for one customer creates a new version for that tenant only. Confirm with your chosen release how definition keys are scoped per tenant in the engine's deployment and query APIs, because that scoping determines whether two tenants can safely share a key such as loanApproval.

Running instances keep the definition version they started with. A customer who starts a case or process on version 3 finishes it on version 3 even after version 4 is activated, which is the behavior most customers and their auditors expect. The rollout order therefore matters: publish the new version to a staging tenant, start a representative set of instances, verify task assignment, timers and decision outputs, then activate it for a pilot customer before the wider tenant group. Moving running instances to a newer version is a separate Flowable capability that should be verified against the release you choose before you promise it to customers, including which change types it supports and how it handles in-flight timers and subprocesses.

A deployment pipeline must validate each customer's definition before activation. Treat customer-supplied or customer-edited models as untrusted input: parse and schema-check the XML, run unit tests against the process and decision logic, reject definitions that reference delegates, expressions or scripts outside an approved list, and confirm every called decision or subprocess exists in the same tenant. Store each validated artifact in version control with its tenant, version and approver, and make rollback a deployment of the previous version rather than a manual database change. Plan the pipeline and its test fixtures as product engineering work, because a faulty definition in one tenant can stop instances for that customer even when the rest of the platform is healthy.

How to expose modeling or configuration to customers safely

Can customers upload their own BPMN or DMN files directly into the engine?

Usually not as raw files in production. Direct upload gives a customer the ability to deploy any process definition the engine accepts, including script tasks and expressions that run code on your servers. A safer pattern is to accept customer changes through a constrained editor or form that produces a validated model, then run that model through your own checks before deployment. Decide this with your security team early, because it sets the attack surface for everything that follows. Confirm which definition formats your chosen Flowable version parses and which elements you intend to permit.

How do we validate and restrict scripts and XML from customer models?

Treat every customer-supplied BPMN or DMN file as untrusted input. Validate the XML against a schema allowlist, reject external entity references and disallowed elements, and strip or block script tasks and expression languages you do not need. Confirm in the Flowable security documentation how scripting and XML parsing are configured in your version, and test these controls with deliberately malicious samples in a non-production environment. Your review should also cover how definitions are stored, who can deploy them, and whether a rejected model leaves an audit record.

How can we limit customer configuration to forms, thresholds and decision values?

Expose a fixed set of configurable parameters rather than the model itself. Typical examples are form field labels, approval thresholds, due-date offsets and values in a decision table, with the process structure and hit policies owned by your team. Store these values as tenant-scoped data that the process reads through variables or decision inputs, and validate each value against a defined type and range before saving. This keeps customer changes reviewable and limits what a faulty edit can break. Ask your product team which parameters are safe to change without a regression run.

How do we control who inside a tenant can change what?

Authorization is your application's job, not the engine's. Flowable checks identity and task assignment, but the rules that decide whether a tenant administrator can publish a decision table or edit a threshold must live in your service layer. Map tenant roles to permitted configuration actions, enforce those checks on every REST call and background job, and record who changed what and when. Confirm how your identity service supplies user and group data for each tenant, since the Flowable docs describe replacing the identity service with your own implementation.

How do we keep one customer's changes from affecting other tenants?

Tie every process definition, deployment, decision and variable to a tenant identifier, and make the tenant boundary part of every query and API call. Flowable supports tenant IDs on definitions and runtime data, but you must verify that every custom delegate, listener and report also filters by tenant. Test with at least two tenants that have overlapping process keys, and confirm that a deployment for one tenant cannot change the running version for another. Shared engine resources such as the async executor also need review, since a noisy tenant can affect timing for everyone.

How should we version a customer's process when we ship a platform update?

Plan for each tenant to run a pinned version of its process definitions while you release changes. Changing a definition for one customer should create a new version only for that tenant, and running instances should keep the version they started with unless you migrate them deliberately. Decide how long old versions are kept, how instances are moved between versions, and how a rollback is handled. The Flowable features documentation covers moving running instances between versions, and you should confirm that behavior against your chosen release before committing to a design.

What does it cost to build these safeguards, and what recurs?

Cost depends on how much of the modeling experience you expose. A form-based configuration layer with validation and tenant scoping is a bounded build, while a model editor with full BPMN or DMN validation adds ongoing work for parser upgrades and security review. One-time costs include the validation layer, tenant isolation tests and the authorization model. Recurring costs include security testing after each Flowable upgrade and support for customer-visible changes. Ask any partner for a written scope that separates these items and states which upgrades and tests are covered.

Rollout phases for a SaaS team embedding Flowable

This sequence moves a SaaS team from a tenancy decision to a tested, operated multi-tenant Flowable deployment, with each phase closing on a check that gates the next. It keeps customer configuration and scaling work behind proven isolation and operations.

  1. Confirm tenancy model and data residency

    Before any code is written, the product owner, architects and security lead decide how tenants map to Flowable: a shared engine with tenant IDs on process definitions, instances, tasks and variables, a dedicated engine per tenant, or a hybrid for large or regulated customers. They also record where process variables, history and job tables may reside, which matters for customers with residency commitments. The step closes with a signed tenancy decision record that lists the isolation boundary, the data stores involved and the open questions for each customer tier.

  2. Prototype embedding in the existing Java stack

    The engineering team embeds the Flowable engines in the product's current runtime, using the Spring Boot starters or a plain servlet or Spring integration, whichever the product already runs. The prototype deploys one sample process and one decision table, starts instances under two test tenant IDs and confirms that queries, tasks and history never cross the tenant boundary. The step closes when a test suite proves that tenant-scoped API calls return only their own data and the team agrees the embedding pattern is repeatable.

  3. Build tenant-aware identity and deployment

    Engineers connect Flowable's identity management to the product's own user and tenant model, either by implementing the identity service interface or by overriding the default identity implementation, and they add authorization checks in the application layer because the engine does not enforce them for you. They also build the deployment pipeline that publishes process definitions per tenant and version. The step closes when a user from one tenant cannot claim, complete or read a task from another tenant, and each deployed definition can be traced to a tenant and a version.

  4. Pilot with a small set of tenants

    A small group of willing tenants, chosen for different usage patterns, runs the embedded processes in a staged environment and then in production under close monitoring. The team tracks failed jobs, task latency, support tickets and any tenant-specific workarounds, and it reviews them with the customer success team at agreed intervals. The step closes with a written pilot report that lists defects fixed, open risks and the criteria the team will use before opening the feature to all tenants.

  5. Add customer configuration with validation

    Once isolation is proven, the team decides which parts of the model customers may change, such as approval thresholds in decision tables or the order of human tasks, and builds an editor or configuration layer that exposes only those parts. Every customer change passes automated validation for BPMN and DMN syntax, expression safety, required variables and tenant scope before deployment, and each change is versioned so that running instances keep their original definition. The step closes when a customer edit that breaks validation is rejected without affecting running instances.

  6. Load and scale test the async executor

    Engineers run load tests that mirror the expected mix of tenants, instance starts, timers and asynchronous jobs, and they observe how the async executor behaves when several application nodes share the same database. They confirm that expired locks are recovered and that jobs are picked up by other nodes after a node stops, and they tune thread pools and job acquisition against the database capacity. The step closes with a documented capacity baseline and scaling rules that state which metric triggers adding a node, and it should be repeated after each major Flowable upgrade.

  7. Write operational runbooks for failed jobs

    Operations and support engineers write runbooks for the failures the pilot and load tests exposed, including failed or stuck jobs, retries, lock recovery, deployment rollbacks and tenant-level data requests. Each runbook names the monitoring signal that starts it, the person or role that acts, the commands or API calls used and the evidence to keep. The step closes when the on-call team has rehearsed at least the failed-job and rollback procedures in a non-production environment and both are linked from the product's operations documentation.

Compliance obligations a SaaS provider must design for

A SaaS provider that embeds Flowable carries obligations for the whole service, not only for the engine. The cards below set out which frameworks apply, what each one asks the product to prove, and where tenant isolation, processor terms, switching and software security decisions land in the Flowable design. DeployOpen prepares controls and evidence, but independent auditors and certification bodies issue reports and certifications.

SOC 2 Trust Services Criteria

A SOC 2 examination is measured against the AICPA 2017 Trust Services Criteria in five categories, and the security common criteria CC1 to CC9 apply to every SOC 2. For a Flowable-based service, map tenant authentication, role checks on process and task APIs, and change control for process definitions to those criteria. Type 1 reports describe control design at a date, while Type 2 reports add an opinion on operating effectiveness over a period. Report use is generally restricted, so ask your auditor which audience the report can reach.

ISO/IEC 27001:2022 Annex A

Annex A of ISO/IEC 27001:2022 lists controls across organizational, people, physical and technological themes. Customers in regulated markets often ask for this scope when they assess a SaaS vendor, and the technological controls map closely to how the Flowable engines, databases and REST APIs are hosted. Only accredited certification bodies certify an organization, on a three-year cycle with annual audits. Confirm with your customers whether they want certification, a statement of applicability or a control mapping.

GDPR Article 28(3) processor terms

When your SaaS processes personal data inside tenant process variables, history tables or attachments, you act as a processor. Article 28(3) requires a contract that binds you to process only on documented instructions, including for transfers, and to apply the security measures in Article 32. Design the Flowable deployment so customer instructions can be honored: per-region databases, documented retention for history, and a way to export or delete one tenant's instances and variables without touching others.

EU Data Act switching rules

The EU Data Act has applied since 12 September 2025 and requires data processing service providers to let customers switch to another provider or to on-premises infrastructure, with a maximum two-month notice period and a 30-day transitional period. From 12 January 2027, switching charges may not be imposed. Plan tenant exports of process definitions, running instances and history in a documented, machine-readable form, and test an import into a second Flowable environment before a customer asks.

NIS2 and Implementing Regulation 2024/2690

NIS2 Annex I places cloud computing, data center and managed service providers in sectors of high criticality. If your product is a cloud or managed service, Commission Implementing Regulation (EU) 2024/2690 sets the technical and methodological requirements for the Article 21(2) security measures. Check whether your customers in the EU fall within NIS2 scope, since that determines which requirements flow down to your Flowable hosting, access reviews and incident reporting.

Cyber Resilience Act for the software

The Cyber Resilience Act applies to products with digital elements, including software, from 11 December 2027. Most products follow self-assessment under module A, but a notified body is needed for class II important and critical products, and for some class I important products. Your embedded Flowable build, custom delegates and tenant-facing modeling tools are part of the product, so keep a software bill of materials, a vulnerability handling process and a record of the security case. Article 14 reporting obligations have applied since 11 September 2026.

Scaling engines as tenant count and process volume grow

The first decision is whether all tenants share one Flowable engine and database or whether some tiers get their own. Both models run on the same engine code, so the choice is about contention, blast radius and cost, not functionality. Start by confirming how the async executor behaves in your Flowable version. According to the Flowable advanced documentation, the 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. Each node that picks up jobs competes for the same job rows, so adding nodes raises contention on the job tables as well as throughput. Confirm the lock expiration and thread pool settings in the Flowable advanced documentation before you size a cluster, and test what happens when a node dies mid-job.

Tenant growth raises two load curves that move at different speeds. Runtime load follows the number of active instances and jobs, which is what the executor works through. History load follows every completed activity, variable change and task across all tenants, and it accumulates for as long as you retain it. A large tenant with long-running cases can dominate both curves, so track job backlog, lock wait times, and history table growth per tenant ID. Ask whether your history level and cleanup strategy are documented for each database you run, and plan partitioning or archiving before the history tables become the bottleneck, not after. Those are the signals that justify moving a tenant tier to a dedicated engine or database.

Measure before you split. Record job queue depth, executor thread utilization, time from job due date to execution, failed and retried jobs, and database lock contention on the job and history tables, all broken down by tenant tier. Use the Spring Boot actuator endpoint at /actuator/flowable if you run the starters, and confirm which metrics your Flowable version exposes rather than assuming them. Separate a tenant tier onto its own engine when one group's job backlog delays another group's timers, when a single tenant's history growth slows queries for everyone, or when contractual isolation or data residency requires it. Confirm with Flowable or your own load tests what a dedicated engine costs in database capacity and operations, since each engine adds schema, upgrades and monitoring you must run.

Questions SaaS teams ask before embedding Flowable

What drives the cost of embedding Flowable in a SaaS product?

Cost follows the written scope, and the largest drivers are how many tenant-facing features you expose, how much customer-facing modeling you allow, and how many integrations the engines must reach. Your team pays for internal design time and ongoing ownership of the engines, while a partner is paid for the work you agree in writing. Ask any quote to separate one-time work (tenant model, identity mapping, the first delegates and tests) from recurring work (upgrades, monitoring, support). Flowable open source is Apache 2.0 licensed, so the software itself carries no license fee, but commercial Flowable products are a separate decision with their own terms.

How long does an embedded Flowable build usually take?

Duration depends on scope rather than on Flowable alone. A narrow build that runs one standard process per tenant with a fixed set of delegates moves much faster than one that lets customers design their own cases, decisions and versioned processes. Timing is also shaped by identity integration, the number of supported databases and how many environments and test tenants you need. No fixed duration applies across products, so ask for a timeline tied to named deliverables in the written scope, and confirm which items depend on your own teams, such as access to identity systems or approval of the tenant model.

Can our engineering team build this without an implementation partner?

Yes, a capable Java team can build on Flowable directly, since the engines are compact, expose Java and REST APIs, and can run inside Spring applications. The harder parts are design decisions that are costly to reverse: how tenant IDs flow through process and case data, how per-customer process versions are deployed and retired, and how the async executor scales across nodes. Teams that do this alone usually need someone who has already run multi-tenant workflow engines in production to review those choices. A partner can take on part of that work, and the split between your team and ours should be written into the scope.

What do we need to provide before the work starts?

Expect to supply decisions and access, not only code. The main inputs are your tenant model (shared schema or isolated databases, and how tenant IDs are stored in process variables), a mapping from your identity provider to Flowable's identity services, and a set of test tenants that reflect real customer configurations. You also need to name the people who approve process changes for customers and who own the release pipeline that deploys process definitions. Confirm these inputs with your own architects early, because each one changes the build sequence and the testing effort.

How do identity mapping and tenant isolation affect the build?

Identity is where many embedded engines fail, so it deserves its own scope item. Flowable's identity management can be replaced by overriding its identity service implementation or by implementing the identity service interface, and an LDAP reference implementation is provided. Your mapping must make sure a user in one tenant can never see tasks, variables or history from another, which the engine does not enforce for you. Add authorization checks in your application layer, test them with at least two test tenants, and review them as part of your security testing.

Do we need Flowable's commercial products to embed the engines?

No. Flowable's open source engines for BPMN, CMMN, DMN and the event registry are licensed under Apache 2.0 and can be embedded as a JAR, in Spring applications or behind the REST application. Flowable's commercial products, including Flowable Work, Engage, Orchestrate and Design, are built on the same engines and add low-code modeling, visual debugging, security controls, monitoring and governance. Choose them only if your customers need those capabilities in a ready-made form. Open source users receive a community forum, while professional services and partners are offered separately, so budget any production support you need from them.

What breaks first when a SaaS product scales its Flowable engines?

Engines usually strain in the async executor, the history volume and the database rather than in the process models themselves. The 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, so a poorly sized pool or an unexpected lock pattern can slow every tenant at once. Plan monitoring from the start using the Spring Boot actuator endpoint for running processes, and confirm the database type and version you will run in production against the supported list in the configuration docs.

What does a customer-facing process configuration feature add to our risk?

Letting customers change processes, decisions or cases increases risk in three places: scripts and expressions that customers can write, versioning of definitions that already have running instances, and authorization for who may deploy a change. Restrict what customers can edit to a defined configuration surface, validate every change before deployment, and keep a record of who approved each version. Confirm with your security team how Flowable's scripting and XML risks are controlled in your configuration before you open any editing feature to customers.

How DeployOpen scopes and delivers a Flowable SaaS embedding

DeployOpen plans, implements, customizes, integrates, hardens, documents and supports open-source platforms inside infrastructure you control. For Flowable embedded in a multi-tenant product, we start with a written scope that fixes tenant isolation, versioning and customer-facing configuration boundaries before any engine code is written.

How we scope

  • Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.
  • We map which tenants share an engine, which own dedicated databases, and where tenant IDs must flow through process variables.
  • We agree which modeling or configuration customers may change, and which changes stay with your product team.
  • Ask for the written scope to name the Flowable engines, Spring or Java baseline, and database types in use.

How we build

  • We design tenant-aware deployment, versioning and process definition lookup against the Flowable engine APIs.
  • Custom delegates, identity services and authorization checks are built and tested around your tenant model.
  • We test running instances across definition versions, async job behavior and lock recovery as you scale nodes.
  • Load and failure testing covers the async executor, history volume and external workers before release.

How we hand over

  • Handover includes architecture notes, tenant onboarding steps and the process definition deployment pipeline.
  • Runbooks cover failed jobs, retries, monitoring endpoints and the upgrade path for future Flowable releases.
  • Security controls for customer-facing configuration are documented so your auditors can trace them.
  • Your team receives the test suite, configuration reference and records of decisions taken during the build.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers, scoped in writing.
  • Retainers can cover Flowable release upgrades, including checks against the Spring and Java baseline each release requires.
  • We can review tenant isolation and customer-facing changes whenever your product roadmap shifts.
  • Ask any provider to confirm how they will test a new Flowable version against your existing tenant data.

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.