This document contains slides from a presentation on building resilient serverless applications. Some key points discussed include: designing applications to withstand failures through techniques like running in multiple availability zones and regions; handling failures from overloading, distributed systems, and timeouts; implementing patterns like decoupled invocation and sagas for distributed transactions; dealing with partial failures, retry storms, and poison messages; and performing chaos engineering experiments to identify weaknesses. The overall message is that failures will occur, so applications need to be designed to recover quickly from difficulties through resilience.
56. @theburningmonk theburningmonk.com
The Saga pattern
Begin transaction
Start book hotel request
End book hotel request
Start book flight request
End book flight request
Start book car rental request
End book car rental request
End transaction
98. @theburningmonk theburningmonk.com
circuit breaker pattern
When circuit is open, fail fast
but, allow 1 request through every Y mins
If request succeeds, close the circuit
After X consecutive timeouts, trip the circuit
119. @theburningmonk theburningmonk.com
“the discipline of experimenting on a system in order to build confidence in the
system’s capability to withstand turbulent conditions in production”
principlesofchaos.org