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.

JAX London 2020: Leverage the full potential of your hipster architecture

Slides from my talk at JAX London. Abstract: There is a lot of buzz around reactive architectures. Take, for example, event-driven architectures, event-streaming or reactive programming. I believe that these architectures will dominate in the future as we build more complex systems, connect more distributed components and slice systems into smaller autonomous pieces. Unfortunately, I see many companies that don’t update their customer experience or business processes to reflect this new world. In this talk, I’ll give an example and discuss the consequences, hopefully motivating you to advocate for a redesign of your business processes internally – because too much attention gravitates towards the technical side of reactive, without thinking about the user journey or business implications.

  • Be the first to comment

  • Be the first to like this

JAX London 2020: Leverage the full potential of your hipster architecture

  1. 1. Leverage the Full Potential of Your Hipster Architecture! Rethink Business Processes and User Experience Bernd Ruecker mail@bernd-ruecker.de | @berndruecker
  2. 2. What‘s hipster? Event-Driven Reactive Distributed Systems Microservices Agile Streaming Domain Driven Design (DDD) Cloud-Native Eventual Consistency JSON & YAML Kubernetes Serverless
  3. 3. What‘s not hipster? Batch Websphere Monolithic Systems Waterfall Two-Phase Commit Mainframe & Cobol Serice oiented architecture SOAP & XML
  4. 4. But can you leverage the full potential?
  5. 5. Example @berndruecker
  6. 6. Example Payment Seat ReservationBooking Ticket Generation
  7. 7. Architecture Payment Seat ReservationBooking Ticket Generation Kafka AMQP REST
  8. 8. Example @berndruecker sync
  9. 9. That is hard to implement Payment Seat ReservationBooking Ticket Generation Kafka AMQP REST REST
  10. 10. Workflow automation can help Payment Seat ReservationBooking Ticket Generation REST
  11. 11. Workflow automation can help Payment Seat ReservationBooking Ticket Generation REST Workflow Automation: Is stateful Can wait Can retry Can escalate Can compensate
  12. 12. Live hacking
  13. 13. https://github.com/berndruecker/ticket-booking-camunda-cloud
  14. 14. Camunda • Source-Available & Developer Friendly • Supports BPMN • Mature tooling, widely adopted • On-prem or cloud • http://camunda.com/
  15. 15. 16 Workflow engines orchestrate
  16. 16. 17 Workflow engines orchestrate anything Straight through processing Human Task Management Microservices RPA bots Functions, Code, … Decisions (e.g. DMN Tables)
  17. 17. 18 The challenge are long running tasks = waiting
  18. 18. 19 A workflow engine persists state 23 79 51
  19. 19. 20 Many use cases (real-life examples) Industry Pilot Lighthouse Broadscale Sample Clients Cross-Industry Approvals Employee Onboarding Credit Check Microservices Orchestration Centralized Workflow Platform High Throughput E2E Process Automation Legacy BPM Replacement Cloud Native Applications IT Service Orchestration Banking & Finance Asset Management Customer Onboarding Loan Origination & Decisioning ATM Provisioning Enterprise Platform Development Trading Risk Management / Fraud Detection Insurance Audit Customer Onboarding Claim Service & Settlement Policy Underwriting & Contracts Integrated KYC Core System Automation Risk Management / Fraud Detection Telecommunication Online Systems Integration New Product Delivery Cell Tower Provisioning Order Management Contracting, Upgrading, Termination OSS & BSS Open Network Automation Platform (ONAP) Media & Entertainment Website Content Delivery System Process Fallout Subscription Management Licensing Content Distribution Digital Supply Chain New Product Development Fraud Management Manufacturing & High Tech Application prototype Order Execution Payments Servicing Research & Development Embedded Workflow Automation Customer Service Supply Chain
  20. 20. Warning: Contains Opinion @berndruecker
  21. 21. mail@berndruecker.io @berndruecker http://berndruecker.io/ Bernd Ruecker Co-founder and Chief Technologist of Camunda
  22. 22. But…
  23. 23. Weaknesses Payment Seat ReservationBooking Ticket Generation REST
  24. 24. Weaknesses: Latency creep Payment Seat ReservationBooking Ticket Generation REST 300 ms 1150 + x ms 600 ms 250 ms
  25. 25. 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.
  26. 26. Want to go serverless? Payment Seat ReservationBooking Ticket Generation REST 300 ms 1150 + x ms 600 ms 250 ms
  27. 27. Weaknesses: Availabiliy erosion Payment Seat ReservationBooking Ticket Generation REST 99 % uptime 99 % uptime 99 % uptime 96 % uptime
  28. 28. And…
  29. 29. @berndruecker
  30. 30. Takes a while
  31. 31. Takes a while
  32. 32. Takes a while
  33. 33. Takes a while
  34. 34. HTTP 500 HTTP 200
  35. 35. Can your company leverage your hipster architecture? Shutterstock You need to change business processes and customer experience!
  36. 36. THIS!
  37. 37. HTTP 202 HTTP 200
  38. 38. Patterns Fire & Forget Polling Callback Blocking Call
  39. 39. Patterns Fire & Forget Polling Callback Blocking Call HTTP 202 tricky HTTP 202 HTTP 202 HTTP 200
  40. 40. @berndruecker happy case failure case Redesign your business process accordingly! Or some interface to poll for status Sync in happy case Async response
  41. 41. @berndruecker Redesign your business process accordingly!
  42. 42. Asynchronous communication enables long running services which allow to assign responsibility correctly @berndruecker
  43. 43. Example Order Payment Credit Card Retrieve Payment @berndruecker
  44. 44. Example Order Payment Credit Card Retrieve Payment Rejected @berndruecker
  45. 45. Example Order Payment If the credit card was rejected, the customer can provide new details Credit Card Retrieve Payment Rejected Rejected @berndruecker
  46. 46. Payment failed Who is responsible? Order Payment If the credit card was rejected, the customer can provide new details Credit Card Retrieve Payment Rejected Payment received @berndruecker
  47. 47. Payment failed Long running services Order Payment Credit Card Retrieve Payment Rejected Payment received @berndruecker
  48. 48. Long running services Order Payment Credit Card @berndruecker
  49. 49. Long running services allow to assign responsibility correctly @berndruecker
  50. 50. Synchronous Facade Blocking Call
  51. 51. Example Payment Seat ReservationBooking Ticket Generation REST Simulate synchronicty by waiting (callback or polling)
  52. 52. Compare to e.g. AMQP https://www.rabbitmq.com/tutorials/tutorial-six-java.html
  53. 53. Code
  54. 54. Push the facade towards the edge as far as possble Payment Seat ReservationBooking Ticket Generation REST
  55. 55. Summary • To increase responsiveness and take responsibility in services seriously, you need some degree of asynchronicity and allow long running services • A workflow engine helps • If you need synchronous behavior, create a facade, but plan for failure and push the facade to the edge
  56. 56. Thank you! @berndruecker
  57. 57. 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/

×