Capacity and Stability Patterns

Friday, November 03, 2017 - 11:00 am11:45 am

Brian Pitts, Eventbrite

Abstract: 

At Eventbrite, engineers are tasked with building systems that can withstand dramatic spikes in load when popular events go on sale. There are patterns that help us do this:

  • Bulkheads: partitioning systems to prevent cascading failures
  • Canary testing: Slowly rolling out new code
  • Graceful degradation: turning functionality on and off in response to failures or load
  • Rate limiting: controlling the amount of work you accept
  • Timeouts: limiting time you wait for a request you made to complete
  • Load shedding: purposefully not handling some requests in order to reserve resources for others
  • Caching: saving and re-serving results to lessen expensive requests
  • Planning: getting the resources you need in place, before you need them

In this talk you learn about each of those patterns, how Eventbrite has adopted them, and how to implement them within your own code and infrastructure.

Brian Pitts, Eventbrite

Brian studied political science in college, but when his thesis contained more python code than prose it was clear where his true loyalties lay. He’s worked in operations roles for the past eight years and currently carries the pager for Eventbrite. He lives in Nashville with his wife, son, two cats, and collection of 1990s Unix workstations.

Open Access Media

USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

Presentation Audio

BibTeX
@conference {207225,
author = {Brian Pitts},
title = {Capacity and Stability Patterns},
year = {2017},
address = {San Francisco, CA},
publisher = {{USENIX} Association},
}