A resilient application can withstand and recover from unexpected errors, faults or failures in the system without compromising its functionality or availability. This session will review the most useful patterns for building resilient applications to make your application fault-tolerant, highly available and able to adapt to changing conditions and environments. It will also explore how we can build confidence by using chaos engineering to inject faults into our applications and uncover our weaknesses. You will leave with an understanding of building more resilient applications and several patterns and practices you can apply to your software development projects.