Why is predictable performance in Erlang important?

I’ve seen in a lot of places people advocating aboit the predictable latency and performance of Erlang VM, even willing to trade gains of performance through JIT (yet a research) for predictable. Why is that ? Is something related to telecom ? Can we web developers gain from it?

Predictable performance is mostly important when trying to scale a system: When you have more and more users, then the average request will take longer.

If you have unpredictable performance, this might mean that some users still get quite fast replies, while other users are waiting for extremely long (for instance because a stop-the-world garbage collection happened). Sometimes so long that the connection times out (websites that become unresponsive or misformed because of missing pictures, styling or scripts), or that the information deadline is passed in the meantime (games that lag, making the game unplayable). For some systems this is merely bad, for others it might break the core functionality of the application, making it unusable. (Example: bank applications that are unable to perform monetary transactions might cost millions per minute when breaking down).

In these kinds of cases, it would be a lot better if the average response time for all users slightly degraded, rather than having the application become completely unusable by some of them.

Web developers can definitely gain from it :slight_smile: .

7 Likes