PyCon 2016 in Portland, Or
hills next to breadcrumb illustration

Tuesday 2:35 p.m.–3:05 p.m.

Remote Calls != Local Calls: Graceful Degradation when Services Fail

Daniel Riti

Audience level:
Intermediate
Category:
Best Practices & Patterns

Description

In a world where we are becoming more dependent on the network to be reliable due to trends to decouple systems into distributed services, we must do our best to expect failure to occur everywhere and anywhere. This talks aims to explore different techniques for gracefully degrading when the networks fail and the services we depend on are no longer available.

Abstract

In a world where our systems are becoming more distributed then ever due to growing trends to decouple systems into small services, we are becoming dependent on network communication between these services to be reliable. But as we all know the number one fallacy of distributed computing is that the [network is reliable][1]. Armed with this knowledge, we know that things will fail. So we must do our best to expect that failure will occur anywhere and everywhere. Thus, let's explore different techniques we can use to build antifragile systems, that degrade gracefully when the network fails and the services we depend on are no longer available. Topics that I will cover in this talk include: - Timeouts - [Circuit breaker pattern][2] - Retries [1]: https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing [2]: https://en.wikipedia.org/wiki/Circuit_breaker_design_pattern