[erlang-questions] Erlang: searching for a convincing argument

Fred Hebert <>
Sun Dec 11 03:52:45 CET 2016


On 12/10, Todd Greenwood-Geer wrote:
>Periodically, say once a month, his prev company had to send out a mass 
>email (templated) to their customer base. This grew from thousands to 
>millions over the course of a few years. As the number of emails 
>increased, their simple script started to run from minutes to hours to 
>days... Furthermore, the email providers impose throughput constraints 
>such that you can only send X number of emails per hour in the first 
>hour, Y in the second, etc. The ramp-ups were explicitly documented and 
>not adhering to them could get you throttled or black-listed.
>

This sounds like a perfect example for the techniques I recently 
mentioned in http://ferd.ca/handling-overload.html

Specifically, you could use libraries such as safetyvalve[1] or jobs[2] 
to schedule all your tasks according to the required limits of the 
system, or use circuit breakers of all kinds[3][4][5] to regulate that 
load as a reaction from the systems you communicate with.

Some of the strengths of Erlang don't come from its semantics, but on 
the strong operational focus of its community, and its dedication to 
writing solving problems in a space where such challenges are common.

I'm a bit short on time tonight to respond with relation with 
distribution (it's a complex topic!); if I remember I'll try to come 
back to it later.

[1] https://github.com/jlouis/safetyvalve
[2] https://github.com/uwiger/jobs
[3] https://github.com/klarna/circuit_breaker
[4] https://github.com/jlouis/fuse
[5] https://github.com/mmzeeman/breaky


More information about the erlang-questions mailing list