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.

OOP 2021 - Leverage the full potential of your hipster architecture

Slides from my talk at OOP 2021: Rethink business processes and user experience to leverage the full potential of your hipster architecture

  • Be the first to comment

OOP 2021 - Leverage the full potential of your hipster architecture

  1. 1. Rethink Processes and User Experience to Leverage The Full Potential Of Your Hipster Architecture Bernd Ruecker bernd.ruecker@camunda.com | @berndruecker
  2. 2. What word do you think of when I say "hipster architecture"? ⓘ Start presenting to display the poll results on this slide.
  3. 3. Shall we use a workflow engine for ticket booking? Yeah, I think so… But we don‘t need state. We implement a synchronous RESTAPI
  4. 4. One day in 2019… Source: https://www.faz.net/aktuell/technik-motor/motor/simulierte-notlandung-am-stuttgarter-flughafen- 14503711.html
  5. 5. Shall we use a workflow engine for ticket booking? Yeah, I think so… But we don‘t need state. We implement a synchronous RESTAPI Wait - why? Customers need to get the PDF ticket right away - to print it out …???... And if some service required to book the ticket is misbehaving, slow or unavailable? …???... Customers can‘t book and get an error message Yeah – I know this behavor from other booking sites – I hate it The synchronous response is a business requirement… There is nothing we can do about it Well, good luck…
  6. 6. Can you share own examples of similar problems? ⓘ Start presenting to display the poll results on this slide.
  7. 7. Let‘s talk about food
  8. 8. How does ordering Pizza work? Pizza Place You Phone Call Synchronous blocking communication Feedback loop (ack, confirmation or rejection) Temporal coupling (e.g. busy, not answering) Pizza Place You Email Asynchronous non-blocking communication No temporal coupling Pizza Place You A feedback loop might make sense (ack, confirmation or rejection) Email Confirmation Email
  9. 9. Feedback loop != result Pizza Place You Email Confirmation Email Pizza Delivery Feedback (ACK, confirmation, rejection) Result
  10. 10. Synchronous blocking behavior for the result? Bad user experience Does not scale well
  11. 11. Scalable Coffee Making https://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html Photo by John Ingle @berndruecker
  12. 12. Scalable Pizza making La Pizza Cresci Cannes https://www.maison-cresci.com/ from http://www.travellingsnail.com/content/la-pizza-cresci-cannes
  13. 13. PUT/order Synchronous results? Pizza Place You Pizza Delivery HTTP 200 The task of Pizza making is long running
  14. 14. Only the first communication step is synchronous Pizza Place You PUT/order HTTP 200 Pizza Delivery The task of Pizza making is long running
  15. 15. https://developers.google.com/web/fundamentals/performance/why-performance- mattersvhttps://developers.google.com/web/fundamentals/performance/why-performance-matters • Pinterest increased traffic and sign- ups by 15% when they reduced perceived wait times by 40%. • COOK increased conversions by 7%, decreased bounce rates by 7%, and increased pages per session by 10% when they reduced average page load time by 850 milliseconds. • The BBC found they lost an additional 10% of users for every additional second their site took to load. • DoubleClick found 53% of mobile site visits were abandoned if a page took longer than 3 seconds to load.
  16. 16. Example @berndruecker
  17. 17. Example Payment Seat Reservation Booking Ticket Generation
  18. 18. Architecture Payment Seat Reservation Booking Ticket Generation Kafka AMQP REST
  19. 19. Long running… The task of ticket booking is potentially long running Payment Seat Reservation Booking Ticket Generation Kafka AMQP REST
  20. 20. @berndruecker sync
  21. 21. That is hard to implement Payment Seat Reservation Booking Ticket Generation Kafka AMQP REST REST
  22. 22. Workflow engines can help :-) Payment Seat Reservation Booking Ticket Generation REST
  23. 23. Workflow engines can help :-) Payment Seat Reservation Booking Ticket Generation REST Process Automation: Is stateful Can wait Can retry Can escalate Can compensate
  24. 24. But…
  25. 25. Weaknesses Payment Seat Reservation Booking Ticket Generation REST
  26. 26. Weaknesses: Availabiliy erosion Payment Seat Reservation Booking Ticket Generation REST 99 % uptime 99 % uptime 99 % uptime 96 % uptime
  27. 27. Weaknesses: Latency creep Payment Seat Reservation Booking Ticket Generation REST 300 ms 1150 + x ms 600 ms 250 ms
  28. 28. Weaknesses: user experience around failure handling Payment Seat Reservation Booking Ticket Generation REST
  29. 29. Can your company leverage your hipster architecture? Shutterstock You need to change business processes and customer experience!
  30. 30. Redesign your business process accordingly! Payment Seat Reservation Booking Ticket Generation REST
  31. 31. Redesign your business process accordingly! Payment Seat Reservation Booking Ticket Generation REST Feedback Loop Result
  32. 32. Synchronous Facade Blocking Call
  33. 33. Example Payment Seat Reservation Booking Ticket Generation REST Simulate synchronicty by waiting (callback or polling)
  34. 34. Push the facade towards the edge as far as possble Payment Seat Reservation Booking Ticket Generation REST
  35. 35. What type of communication do you mostly use? ⓘ Start presenting to display the poll results on this slide.
  36. 36. Does your business roles understand the impact on business processes and customer experience? ⓘ Start presenting to display the poll results on this slide.
  37. 37. Live hacking
  38. 38. Warning: Contains Opinion @berndruecker
  39. 39. mail@berndruecker.io @berndruecker http://berndruecker.io/ Bernd Ruecker Co-founder and Chief Technologist of Camunda
  40. 40. Camunda • Source-available & developer-friendly process automation platform • Supports BPMN • Mature tooling, widely adopted • On-prem or cloud • http://camunda.com/
  41. 41. https://github.com/berndruecker/ticket-booking-camunda-cloud
  42. 42. Live hacking
  43. 43. User Experience
  44. 44. Takes a while
  45. 45. Takes a while
  46. 46. Takes a while
  47. 47. Takes a while
  48. 48. HTTP 500 HTTP 200
  49. 49. THIS!
  50. 50. HTTP 202 HTTP 200
  51. 51. Summary • To increase resiliency and responsiveness, you need some degree of asynchronicity and allow long running services • A workflow engine helps you • If you need synchronous behavior, create a facade, but plan for failure and push the facade to the edge
  52. 52. Thank you! @berndruecker
  53. 53. Audience Q&A Session ⓘ Start presenting to display the audience questions on this slide.
  54. 54. mail@berndruecker.io @berndruecker https://berndruecker.io https://medium.com/berndruecker https://github.com/berndruecker https://www.infoq.com/articles/events- workflow-automation Contact: Slides: Blog: Code: https://www.infoworld.com/article/3254777/ application-development/ 3-common-pitfalls-of-microservices- integrationand-how-to-avoid-them.html https://thenewstack.io/5-workflow-automation- use-cases-you-might-not-have-considered/

×