Your server as a function

  • Authors:
  • Marius Eriksen

  • Affiliations:
  • Twitter Inc.

  • Venue:
  • Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
  • Year:
  • 2013

Quantified Score

Hi-index 0.02

Visualization

Abstract

Building server software in a large-scale setting, where systems exhibit a high degree of concurrency and environmental variability, is a challenging task to even the most experienced programmer. Efficiency, safety, and robustness are paramount---goals which have traditionally conflicted with modularity, reusability, and flexibility. We describe three abstractions which combine to present a powerful programming model for building safe, modular, and efficient server software: Composable futures are used to relate concurrent, asynchronous actions; services and filters are specialized functions used for the modular composition of our complex server software. Finally, we discuss our experiences using these abstractions and techniques throughout Twitter's serving infrastructure.