This document discusses how to leverage asynchronous architectures like microservices to improve responsiveness and availability. It recommends redesigning business processes and user experiences to embrace some degree of asynchronicity. Workflow automation can help manage asynchronous processes and retries. If synchronous behavior is needed, a facade can be used to simulate it by waiting for asynchronous responses. But the facade should be prepared to handle failures and pushed to the edge to avoid latency creep.
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Rethink Business Processes and User Experience to Leverage Hipster Architecture
1. Rethink Business Processes
and User Experience
to Leverage The Full Potential Of
Your Hipster Architecture
Bernd Ruecker
Co-Founder and Chief Technologist
@berndruecker
11. Workflow automation can help
Payment
Seat
ReservationBooking
Ticket
Generation
REST
Workflow Automation:
Is stateful
Can wait
Can retry
Can escalate
Can compensate
44. Example
Booking Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
@berndruecker
45.
46. Example
Booking Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
@berndruecker
47. Example
Booking Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Rejected
@berndruecker
A few
smart god services
tell
anemic CRUD services
what to do
Sam Newmann
48. Payment
failed
Who is responsible to deal with problems?
Booking Payment
If the credit
card was
rejected, the
customer can
provide new
details
Credit
Card
Retrieve
Payment
Rejected
Payment
received
@berndruecker
49. Payment
failed
Long running services
Booking Payment
Credit
Card
Retrieve
Payment
Rejected
Payment
received
Smart endpoints are
potentially long-running
@berndruecker
They need
persistent state
Ergo you need
Camunda :-)
50. Being able to implement
long running services
is essential for clear
responsibilities and better APIs
@berndruecker
62. Push the facade towards the edge as far as possble
Payment
Seat
ReservationBooking
Ticket
Generation
REST
63. Summary
• To increase responsiveness and take responsibility in services
serious, you need some degree of asynchronicity
• Workflow automation can help you with a lot of challenges
around that
• If you need synchronous behavior, create a facade, but plan
for failure and push the facade to the edge