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.
Dev Dives: Streamline document processing with UiPath Studio Web
JAX London 2020: Leverage the full potential of your hipster architecture
1. Leverage the Full Potential of
Your Hipster Architecture!
Rethink Business Processes and User Experience
Bernd Ruecker
mail@bernd-ruecker.de | @berndruecker
11. Workflow automation can help
Payment
Seat
ReservationBooking
Ticket
Generation
REST
Workflow Automation:
Is stateful
Can wait
Can retry
Can escalate
Can compensate
51. Example
Order Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
@berndruecker
52.
53. 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
61. Push the facade towards the edge as far as possble
Payment
Seat
ReservationBooking
Ticket
Generation
REST
62. 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
Payment = async (technical reasons: Retry, ET?)
Sync facade possible -> Waiting = best effort for 200, but potentially 202
Polling into API
Shall I do a callback example? Or messaging?