Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JavaBin Oslo: Open source workflow and rule management with Camunda

840 views

Published on

Talk held at the JavaBin in Oslo on 4th of April 2017

Published in: Technology
  • Be the first to comment

JavaBin Oslo: Open source workflow and rule management with Camunda

  1. 1. Open source workflow and rule management with Camunda bernd.ruecker@camunda.com | @berndruecker | http://bernd-ruecker.com/
  2. 2. pay receive shipment place order I want to buy something! I am happy!
  3. 3. The internal view receive shipment place order manual approval in case of risky orders risk check payment delivery
  4. 4. Requirements receive shipment place order manual approval in case of risky orders risk check payment delivery Long running, requires state handling Service collaboration, potentially long running
  5. 5. How to implement this?
  6. 6. State in entity
  7. 7. Or a seperate state entity
  8. 8. State machine Using Camunda, open source workflow engine: http://camunda.org/
  9. 9. Invoking logic
  10. 10. Visualization and persistent state Relational DB
  11. 11. Visibility helps!
  12. 12. Some time ago… Application Processingnew applications CRM
  13. 13. Some time ago… Application Processingnew applications CRM
  14. 14. When does these things happen?
  15. 15. The sales report on Monday:
  16. 16. Alarming by management attention
  17. 17. Alarming by customer complaints
  18. 18. Same story using Camunda
  19. 19. GET /engine/default/incident/count { "count":1 }
  20. 20. Hot potato issue handling
  21. 21. The 7 sins of workflow and Java No engine Wrong engine 3 4 6 5 7 http://blog.bernd-ruecker.com/ 2
  22. 22. The 7 sins of workflow and Java Homegrown engine No engine Wrong engine 3 4 6 5 7 http://blog.bernd-ruecker.com/
  23. 23. The homegrown engine ©kallejipp/photocase.com Own DSL, parsing, graphical representation, modeler, persistence, escalation, version management, tooling, … Whole teams maintaining something that always lacks behind
  24. 24. The 7 sins of workflow and Java Zero-code suites Homegrown engine No engine Wrong engine Wrong usage 4 6 5 7 http://blog.bernd-ruecker.com/
  25. 25. Death by properties panel Script: Please enter your complex code here. (Without IDE support of course!)
  26. 26. BPM Suites By the way, we introduce an own development approach, IDE, version control, user management, reporting, …
  27. 27. Zero code & developers We have a lot of problems! It totally sucks! I hate BPM!
  28. 28. Bernd Rücker Co-founder Camunda > 10+ years workflow http://bernd-ruecker.com/ bernd.ruecker@camunda.com Camunda Open source vendor Berlin + San Francisco > 60 employees No venture capital www.camunda.org
  29. 29. In Camunda you can specify flows programatically or graphically Todo…
  30. 30. Proper testing – too!
  31. 31. Lightweight engine Cockpit Modeler DB Tasklist Custom App Business Analyst Java API Engine REST API End User Developer Operator
  32. 32. Requirements receive shipment place order manual approval in case of risky orders risk check payment delivery Long running, requires state handling Service collaboration, potentially long running Guidance for decision, history
  33. 33. Decision Tables
  34. 34. Live Demo
  35. 35. Example of “classical” architecture Node 2 JBoss, WildFly, WAS, … Node 1 Camunda (Shared Process Engine) Database ProcessApplication1 (war) e.g. „Procurement “ BPMN Delegates Forms / UI ProcessApplication2 (war) e.g. „Order Management“ BPMN Delegates Forms / UI ProcessApplication3 (war) reusable global processes BPMN Delegates Forms / UI Generic User Interface (war) task list, reusable global forms, … Entities, rules, … Entities, rules, … Entities, rules, … Camunda Webapp (war) Cockpit, Tasklist, Admin Load Balancer Browser Some service BPM Service (war) customer specific service - generic Camunda REST API (war)
  36. 36. Example of microservices architecture Every microservice can decide autonomously Make sense as soon as you have state Engine must be • easy to use • developer friendly also in the scope of microservices • technically • license model Payment service Order service engine engine … Inventory service Shipping service … engine
  37. 37. Paymentservice Microservice collaboration Orderservice Eventbus
  38. 38. Demo available on Github Inventory service Payment service Order service Shipping service H2 Shop Monitor Camunda Webapp on Tomcat for demo in single Java VM for simplicity
  39. 39. Camunda community ecosystem Testing Spring Boot Camel Docker Elasticsearch Grails PHP & C# client and more: https://docs.camunda.org/manual/latest/introduction/extensions/
  40. 40. AT&T More than 100 Customers • Finance: Account Opening, Credit Card Provisioning, … • Insurance: Insurance Policy Issue, Claim Settlement, … • Telco: OSS, BSS, … • Media: Digital Content Delivery, … • E-Commerce: Order Execution, Purchasing, …
  41. 41. Customer Case Studies https://network.camunda.org/whitepapers/
  42. 42. Slides online: http://bernd-ruecker.com Feedback: http://bernd-ruecker.com/feedback Camunda: http://camunda.org/ Code online: https://github.com/berndruecker/
  43. 43. Takeaways • Almost any application nowadays has (potentially) long running flows • Camunda can do the state handling nicely for you • The lightweight framework allows best-of-breed and modern architectures • Graphical representation helps to align people. • It is a lot of fun!
  44. 44. The 7 sins of workflow Zero-code suites Homegrown engine Granularity bloopers BPM monolith Stakeholders habitat violation Over engineering No engine Wrong engine Wrong usage http://blog.bernd-ruecker.com/
  45. 45. Thank you! Any questions?

×