How it helps your business
Key Benefits
- Unmatched Pattern Support: Supports more of the definitive "Workflow Patterns" than almost any other commercial tool, allowing for complex branching, synchronization, and cancellation logic.
- Formal Verification: Workflows can be mathematically verified for deadlocks and unreachability before ever being deployed to production.
- Microservices Ready: The architecture natively supports decoupling the workflow engine from the task executors via web services.
- Extensible Resource Management: Highly granular control over "who does what," including concepts like delegation, escalation, and separation of duties.
Production Architecture Overview
- YAWL Engine: The core state machine coordinating control flow and data flow. It maintains the state of all running process instances in a backend relational database (e.g., PostgreSQL, MySQL).
- Resource Service: Manages organizational data (participants, roles, capabilities) and handles task allocation and the work queue.
- Custom Services: Java or REST-based microservices that the Engine calls to perform automated work (e.g., an
EmailServiceor aPaymentGatewayService). - Web UI / Resource Portal: The front-end application where human participants log in to claim, start, and complete their assigned tasks.
How we deploy this for you
Security Hardened
Firewalls, SSL, and hardened kernels out of the box.
Performance Tuned
Optimized for speed with cache and DB fine-tuning.
Automated Backups
Daily off-site backups so you never lose your data.
Private Cloud
You own the server and the data. No middleman.
Implementation Blueprint
Prerequisites
# Update standard packages
sudo apt-update && sudo apt upgrade -y
# Install OpenJDK 11
sudo apt install openjdk-11-jdk -y
# Install PostgreSQL for the backend database
sudo apt install postgresql postgresql-contrib -y
# Install Apache Tomcat 9
sudo apt install tomcat9 tomcat9-admin -yDatabase Configuration (PostgreSQL)
sudo -u postgres psql
CREATE DATABASE yawl;
CREATE USER yawluser WITH PASSWORD 'secure_production_password';
GRANT ALL PRIVILEGES ON DATABASE yawl TO yawluser;
\qDeploying the YAWL Components
.war files for Tomcat deployment). In a production environment, you deploy the core engine and the resource service.# Assuming you have downloaded the YAWL distribution ZIP
unzip yawl-x.y.zip -d /opt/yawl
# Copy the WAR files to Tomcat's webapps directory
sudo cp /opt/yawl/engine/yawl.war /var/lib/tomcat9/webapps/
sudo cp /opt/yawl/resourceservice/resourceService.war /var/lib/tomcat9/webapps/yawl.war directory (or providing a separate hibernate.cfg.xml in Tomcat's classpath).<!-- Example Hibernate overrides for PostgreSQL -->
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/yawl</property>
<property name="hibernate.connection.username">yawluser</property>
<property name="hibernate.connection.password">secure_production_password</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>sudo systemctl restart tomcat9Custom Service Integration (REST API)
const express = require('express');
const app = express();
app.use(express.text({type: 'application/xml'})); // YAWL Engine sends XML payloads
app.post('/my-custom-yawl-service', (req, res) => {
// 1. Parse the incoming YAWL task XML payload
console.log("Received task from YAWL engine:", req.body);
// 2. Execute target business logic (e.g., updating an external CRM)
updateCRM();
// 3. Return success payload back to YAWL to complete the task
const responseXML = `<response><status>Success</status></response>`;
res.status(200).send(responseXML);
});
app.listen(8080, () => console.log('YAWL custom service listening on port 8080'));Security Practices
- Network Isolation: The YAWL Engine should not be exposed to the public internet. Only expose the specific web portals or front-end applications that interact with the engine via APIs.
- Reverse Proxy & SSL: Place an Nginx or Apache HTTP server in front of Tomcat to handle SSL/TLS termination. Provide human users access only via
https://workflow.yourcompany.com. - Database Security: Run PostgreSQL securely; disable remote root access, only allow connections from the Tomcat server IP, and utilize regular scheduled backups using
pg_dump. - Authentication: Integrate the YAWL Resource Service with your enterprise LDAP or Active Directory structure rather than maintaining isolated workflow user accounts.
Includes Security & performance standards
Best place to host YAWL
We recommend Hostinger for its reliability and low cost. It's the perfect home for your new apps, featuring easy setup and 24/7 support.
Get Started on HostingerCompare Similar Tools
n8n
n8n is an open-source workflow automation tool that enables developers to automate tasks, integrate services, and build complex workflows. It is production-ready, scalable, and extensible.
GitLab
GitLab is a complete open-source DevOps platform that provides source code management, CI/CD pipelines, and collaboration tools. It is production-ready, scalable, and secure for enterprise deployments.