If You Are Synchronous You Are Not Resilient
Your software will break. The more sophisticated it is, the more often it will break. While traditional software design tries to eliminate failure through extensive testing, modeling and other techniques, highly scalable and dynamic systems need to embrace failure. Instead of trying to be robust, these systems need to be resilient, e.g. by restricting the extent of failure through isolated failure domains. Synchronous, state-sharing approaches like many object-oriented systems are notorious for propagating failure and make it difficult to isolate failure. Decoupled, asynchronous systems can add resilience.
This session takes a journey through coupling, asynchrony, conversations, and patterns for resilient software design.
Messaging, Architecture, Resilience, Scaling, Asynchrony, Patterns, Design, Decouping
developers, Technical leads and Architects,programmers, testers, business analysts and product owners,programmers, testers, business analysts and product ownersts and product owners