Skip to content

Comment on Process-Based Concurrency: Why Beam and OTP Keep Being Rightparent

Comments

Sender punishment on the same node may be dead, but AFAIK, if the dist connection to a remote node is beyond the backlog threshold, sends will block, which offers some backpressure.

Is that sufficient and/or desirable backpressure, and does it provide everything your app needs? Maybe close enough for some applications?

You can also do some brute force backpressure stuff now; you can set a max heap size of a process and if it uses an on-heap message queue, it should be killed if the queue gets too large. Not very graceful, but create some back pressure.

I'm a fan of letting back pressure accrue by having clients timeout, and having servers drop requests that arrive too late to be serviced within the timeout, but you've got to couple that with effective monitoring and operations. Sometimes you do have to switch to a quick response to tell the client to try again later or other approaches.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.