Safetyvalve – Load Regulation with Specifications
This talk presents safetyvalve, yet another load regulation framework for Erlang. What makes safetyvalve stand out is an experiment: All code is derived from a QuickCheck specification. That is, the specification is written before the code is extended with functionality. And you are only allowed to extend the code when you know how to write the specification for it.
Safetyvalve is also unique in that it contains a CoDel (Controlled Delay) queue management algorithm. This allows for self-tuning load regulation where the system adapts to the machine on which is runs, large or small.
I claim that code derived from specifications results in smaller and more correct programs. I claim that it results in faster development. And I claim it is much more fun.
Talk objectives: In addition to the application itself, we show how to derive a QuickCheck specification as a study. How to start small and then systematically extend the specification until it covers the program one wishes to derive.
Target audience: People interested in load regulation and queuing methods; People who would like a case study of QuickCheck specifications.
Jesper Louis Andersen Distribution Geek, Creator of the Erlang BitTorrent Client
Jesper is an Erlang hacker at Erlang Solutions Ltd, working on all kinds of Erlang stuff. From optimization, to protocols, to internals. He also has some knowledge about Unix systems, functional programming, semantics, type systems and formal verification.
Before joining Erlang Solutions, he studied computer science at Copenhagen University. And he wrote a couple of BitTorrent clients, in Haskell and Erlang.