The document discusses challenges with microservices integration and distributed systems. It presents strategies like circuit breakers and workflow engines to handle failures and asynchronous communication in a resilient manner. Specifically, it recommends using a workflow engine like Camunda to implement stateful retry, timeouts, compensation to keep failures localized. It also advocates for using external tasks with Camunda to enable polyglot programming, scaling, decoupling and natural transactions in a microservices architecture.
21. We are having some technical
difficulties and cannot present you
your boarding pass right away.
But we do actively retry ourselves, so
lean back, relax and we will send it
on time.
…just made this up…
39. generateBoardingPass
HTTP 200 OK
HTTP 202 ACCEPTED
Check-in
A synchronous response is possible in the
happy case, otherwise it is switched to
asynchronous processing.
46. Manifold architecture options
The
image
part with
relationsh
ip ID rId4
was not
found in
the file.
https://blog.bernd-ruecker.com/architecture-options-to-run-a-workflow-engine-6c2419902d91
52. has to implement
Timeout, Retry,
Compensation
has to offer
Compensation
has to implement
Idempotence
Client Service Provider
53. has to implement
Timeout, Retry,
Compensation
has to offer
Compensation
has to implement
Idempotency
Client Service ProviderDon‘t forget
about state
54. # Be aware of complexity of distributed systems
# Know strategies and tools to handle it
e.g. Circuit breaker (Hystrix)
Workflow engine for stateful retry, waiting, timeout,
compensation, and visibility (Camunda)
59. # External Tasks are the perfect fit for a
decoupled Microservice architecture with Camunda
60. # External Tasks are the perfect fit for a
decoupled Microservice architecture with Camunda
… and help you to solve some other problems along the way:
. Polyglot programming
. Scaling and Clustering
. Decoupling
. Natural transactions for distributed systems