Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to Flowable (@jug.ch)

Filip Hrisafov
January 29, 2020
310

Introduction to Flowable (@jug.ch)

Flowable is an open source project providing lightweight java BPMN, CMMN and DMN engines.

All the engines can run embedded in a Java application, or as a service on a server, a cluster, in the cloud and as a function as a service.

In this talk we gave an introduction about the project and BPMN, CMMN and DMN. We used Spring Boot to show how you can use the engines to solve some real world use cases.

Filip Hrisafov

January 29, 2020
Tweet

Transcript

  1. © 2020 Flowable AG. All rights reserved. 29.01.2020 • Core

    Software Architect at Flowable • Flowable core dev • MapStruct project lead • Head Solutions Architect at Flowable • Flowable core contributor • 11 years experience in process management Short Introduction Filip Hrisafov Jose Antonio Alvarez 2
  2. © 2020 Flowable AG. All rights reserved. 29.01.2020 Agenda &

    Goals • Explaining all that Flowable can do in 60 mins is … impossible • Short History • Open Standards (BPMN, CMMN, DMN) • A glimpse of what you can do • And hope to inspire you to look deeper! 3
  3. © 2020 Flowable AG. All rights reserved. 29.01.2020 Flowable 6.3

    Flowable 5.23 A process instances per second C Speed, scalability and innovation • Fastest engines available • Lightweight Flowable Open Source Project 4 Native BPMN, CMMN and DMN engines • High performance, high scale • Years of real world use Long heritage of Open Source BPM • Origins since 2010 in Activiti and jBPM • Established 2016 by Alfresco co-founder and Activiti team Community is key • Credibility through engagement & contributions • Usage all over the world and in all kind of industries jBPM Flowable Activiti 2010 2016
  4. 29.01.2020 jBPM 3 Flowable Activiti Flowable 6 jBPM 5 Bonitasoft

    Camunda 7 Activiti 5/6/7 Effektif Dropped jBPM and built own engine, but no longer a focus Continues without architects but no core engine updates R&D focus shifted to new microservice orchestration engine (Zeebe) Implemented BPM on Red Hat Drools architecture Lightweight BPMN, now rolled into Signavio (not open source) 2016 2013 2013 2010 2009 Flowable Family Tree 5
  5. Manage complex business activities that require a mix of human

    and electronic actions, such as an incoming application, a submitted claim, a complaint, or incident management Case management Coordinate or orchestrate the behaviour of people, systems, information, and things to produce business outcomes. Processes are typically structured and repeatable Business process management Case and Business Process Management The heart of Digitalization 6
  6. © 2018 Flowable AG. All rights reserved. BPMN vs. CMMN

    – the Basics • BPMN • one or more tokens “flowing” through a process model • CMMN • more like “event – condition – action” paradigm • Should I choose one over the other? • No! • Use them both in combination! 8
  7. © 2020 Flowable AG. All rights reserved. 29.01.2020 Why use

    a workflow engine? 13 • The engine handles orchestration/coordination • Visual representation • Transaction delimitation and handling • Error handling/Retry mechanism • Auditing / history log • No need for complex and big processes to benefit from Flowable
  8. © 2020 Flowable AG. All rights reserved. 29.01.2020 Modelling vs.

    Coding • The hardest part about our job is translating requirements • A picture says more than thousands words • A visual model is the common meeting ground 14
  9. © 2020 Flowable AG. All rights reserved. 29.01.2020 Modeling centric

    • Visual representation of business requirements • Understood by analysts and devs • Orchestration logic not hidden in code 15
  10. © 2020 Flowable AG. All rights reserved. 29.01.2020 Runtime state

    • Visual representation of runtime state • Current activities • Completed activities • State data (variables, identity links, event subscriptions) always available 16
  11. 29.01.2020 REST API BPMN Engine CMMN Engine DMN Engine Basic

    Form Engine Basic Content Engine Flowable OSS Architecture 17 Persistence Service Job Service Variable Service Task Service Identity Service Engine Specific Services Flowable Modeler Flowable Task IDM Admin
  12. © 2020 Flowable AG. All rights reserved. 29.01.2020 Flowable Spring

    Boot support • Lots of starter modules • Auto deployment of process, case, decision resources • Creation and injection of all engines and services 18 <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</artifactId> <version>6.5.0</version> </dependency>
  13. © 2020 Flowable AG. All rights reserved. 29.01.2020 Demo: order

    processing in online store 19 1. Flowable receives a purchase order from a customer 2. Lock the items in inventory 3. Employee confirms shipment handover to post office ◦ Customer receives a confirmation mail 4. Two weeks later, customer receives a mail to rate the articles
  14. © 2018 Flowable AG. All rights reserved. Models, Definitions, Instances

    A model is like the mold or source code of what you want to create: • The BPMN model in Design exports to an XML format • The Form model in Design exports to a JSON format Definitions are created based on models when they are published. • Process Definition for an Expense Process • Case Definitions for a Repair Case Instances can be created based on definitions after that. • Concrete Process Instances for expense reports • Concrete Case Instances for Repair Cases 20
  15. 29.01.2020 Some concepts Modeler BPMN, CMMN or DMN models Engine

    deploy Process/Case/DecisionTable Definition DB start process/case/decision instance Process/case/decision instance state & history Give all tasks for user XYZ Show all instances since the last year … 21
  16. © 2020 Flowable AG. All rights reserved. 29.01.2020 Get your

    processes under control 22 • Resources for the OSS Project (flowable.org) • Resources for Enterprise Support (flowable.com) • Enterprise trial (flowable.com/trial) • OSS Engines (github.com/flowable/flowable-engine) • Demo for this presentation (https://github.com/jaam/flowable-jug-demo) • Forum (forum.flowable.org) • Latest news @flowablebpm, @filiphr and @jaam_eu