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.

7 sins of workflow

316 views

Published on

Slides from my talk at Java Forum Nord on 12th of September 2017 in Hannover.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

7 sins of workflow

  1. 1. The 7 sins of workflow mail@bernd-ruecker.com
  2. 2. The 7 sins of workflow 3 2 4 6 5 7 1
  3. 3. What is workflow?
  4. 4. The obvious use case for workflow: Human task management
  5. 5. A simple example Human task management Service collaboration Events , e.g. timers * Modeled in BPMN = ISO Standard for modeling and execution
  6. 6. Tasklists and task forms …
  7. 7. Another use case: service collaboration
  8. 8. Service A Challenge: Synchronous collaboration Call service B Service B The network is unreliable Hystrix adds circuit breaker & fail fast Retry capability missing
  9. 9. Service A Challenge: Asynchronous collaboration Send message to B Service B Wait for response Timeout handling Message correlation State handling
  10. 10. Challenge: Flow logic Sequence Routing decisions Parallelism … See also http://www.workflowpatterns.com/
  11. 11. Challenge: Distributed transactions 1. book hotel 2. book car 3. book flight 6. cancel hotel 5. cancel car 4. In case of failure trigger compensations book trip Service A Car ServiceHotel Service Flight Service ACID-Transactions only local in the service contexts Distributed transaction via Saga pattern using compensating activities
  12. 12. A workflow engine is a (persistent) state machine
  13. 13. What BPMN can do
  14. 14. What BPMN can do
  15. 15. What BPMN can do
  16. 16. Toolbox for distributed systems Handling of time & timeouts Retry Distributed transactions Message correlation & de-duplication
  17. 17. Workflow and BPM
  18. 18. … and death by properties panel Same story with BPM: Shiny vendors promised zero-code … proprietary, alien like tools …
  19. 19. BPM sucks. I hate it. So thank you, I can do without.
  20. 20. Alarming by management attention
  21. 21. Let‘s simply build this ourselves…
  22. 22. It is en-vogue
  23. 23. This is not a new idea… Own DSL, parsing, graphical representation, modeler, persistence, escalation, version management, tooling, …
  24. 24. The 7 sins of workflow Zero-code suites Homegrown engine No engine Wrong engine 4 6 5 7
  25. 25. Process Manager …
  26. 26. Bernd Rücker Consultant & Evangelist 10+ years workflow http://bernd-ruecker.com/ bernd.ruecker@camunda.com Co-founder Camunda http://camunda.org/
  27. 27. BPM done right Developer friendly Composable BizDevOps
  28. 28. Live hacking
  29. 29. Live hacking wrap-up @Autowired ProcessEngine engine; Bpmn.createProcess() ...;
  30. 30. The 7 sins of workflow Zero-code suites Homegrown engine No engine Wrong engine 4 6 5 7
  31. 31. The 7 sins of workflow Zero-code suites Homegrown engine Granularity bloopers Over engineering No engine Wrong engine Wrong usage 6 7
  32. 32. The 7 sins of workflow Zero-code suites Homegrown engine Granularity bloopers BPM monolith Over engineering No engine Wrong engine Wrong usage 7
  33. 33. Microservice Orchestration?
  34. 34. Avoid the BPM monolith in microservice architectures Payment Order engine engine Inventory Shipping Payment Order Inventory Shipping BPM
  35. 35. Do not violate the microservice ownerships Order Inventory Payment
  36. 36. Payment Distributed flows are owned by microservices Order Distributed orchestration
  37. 37. 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
  38. 38. Avoid these sins and life will be great!
  39. 39. Summary: State machines solve some hard developer problems Monitoring & Operations Handling of time & timeouts Retry Visibility & Reporting Versioning Compensation Message correlation Performance & scalability
  40. 40. Thank you!
  41. 41. Slides: https://bernd-ruecker.com Blog: https://blog.bernd-ruecker.com Feedback: https://bernd-ruecker.com/feedback

×