[erlang-questions] Erlang: searching for a convincing argument
Fred Hebert
mononcqc@REDACTED
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