Concurrency Fount: a Pace-Regulated Supply of Newly Spawned Processes

Jay Nelson
Relentlessly Pursuing Power Patterns of Concurrency

Worker pools have become the most overused (and most commonly improperly implemented) Erlang tool. The new cxy_fount behaviour of offers an alternative that doesn't suffer the catastrophic failures of most supervised worker strategies. It provides a reservoir of pre-spawned single-use processes, with a time-regulated replacement mechanism to allow back pressure to smooth demand spikes. The result is a tunable throttle on client requests, which ensures that the server does not exceed its computational capacity while adapting to multiple service demands simultaneously.

Talk objectives:

To explain a new architectural library component that can be introduced to provide a system with a tunable control on client demand.

Target audience:

Intermediate to advanced Erlang system engineers.


A focus on backend servers, algorithms for handling streaming data, and highly available cloud-based services has fueled my journey across languages from APL/Prolog/LISP through Pascal/Modula/C++/C#/Java to Erlang. My experiments in Erlang Patterns Of Concurrency (epocxy) attempt to expand the features of OTP beyond single server patterns.

GitHub: duomark

Twitter: @duomark

Back to conference page