Be the first to like this
Integrating microservices and taming distributed systems is hard. In this talk I will present three challenges I’ve observed in real-life projects and discuss how to avoid them:
Communication is complex. With everything being distributed failures are normal so you need sophisticated failure handling strategies (e.g. stateful retry);
Asynchronicity requires you to handle timeouts. This is not only about milliseconds, systems get much more resilient when you can wait for minutes, hours or even longer;
Distributed transactions cannot simply be delegated to protocols like XA. So you need to solve the requirement to retain consistency in case of failures.
I will not only use slides but demonstrate concrete source code examples available on GitHub.