Rafał Studnicki

.999 matters

Building low tail-latency systems in Erlang and Elixir at Erlang Solutions and Grindr - one of the largest dating apps

What if we could apply a combinator to an entire system to ensure that it meets
SLAs? Such a construct exists, and it's called a feeback control loop. By iteratively applying a controller function to the output of our system, we can steer its behavior without any knowledge of the inner workings. This high-level take on Control Theory turns out to be easily implemented in functional languages, such as Elixir.
Because we rely only on functions to build our control schemes, we can easily nest them to manage more that one parameter of the system. This philosophy resulted in a framework that's now used in ensuring the performance of Grindr's production systems in the presence of uncertainty.
For example: if our web service fails to meet the SLA for any reason, the controller function will direct the system to drop a fraction of incoming requests, until all the requests that are accepted, remain within SLA.

Video ←Back