OOP 2021 - Leverage the full potential of your hipster architecture
1. Rethink Processes and User Experience
to Leverage The Full Potential Of Your
Hipster Architecture
Bernd Ruecker
bernd.ruecker@camunda.com | @berndruecker
2. What word do you think of when I say
"hipster architecture"?
ⓘ Start presenting to display the poll results on this slide.
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. One day in 2019…
Source: https://www.faz.net/aktuell/technik-motor/motor/simulierte-notlandung-am-stuttgarter-flughafen-
14503711.html
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. Can you share own examples of similar
problems?
ⓘ Start presenting to display the poll results on this slide.
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. Feedback loop != result
Pizza
Place
You
Email
Confirmation Email
Pizza Delivery
Feedback (ACK, confirmation, rejection)
Result
22. That is hard to implement
Payment
Seat
Reservation
Booking
Ticket
Generation
Kafka
AMQP
REST
REST
23. Workflow engines can help :-)
Payment
Seat
Reservation
Booking
Ticket
Generation
REST
24. Workflow engines can help :-)
Payment
Seat
Reservation
Booking
Ticket
Generation
REST
Process Automation:
Is stateful
Can wait
Can retry
Can escalate
Can compensate
36. Push the facade towards the edge as far as possble
Payment
Seat
Reservation
Booking
Ticket
Generation
REST
37. What type of communication do you
mostly use?
ⓘ Start presenting to display the poll results on this slide.
38. Does your business roles understand the
impact on business processes and
customer experience?
ⓘ Start presenting to display the poll results on this slide.
59. 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