Throttle message reception

Is it possible to throttle the number of messages accepted by Kumo? There’s a configure_redis_throttles method, but it’s not clear what it’s throttling. Is it used for listener domains or egress paths or something else?

Hey there @original-baboon, thanks for posting. Please read the “Troubleshooting” and “How to Ask for Help” buttons below. If you would like a 1:1 support session from the KumoMTA team, details are at the “Book a Support Session” button below.

Given our focus on sender use cases, we have not yet put these kind of throttles on our roadmap as they are typically used for receiving use cases such as mailbox providers. All throttle configs are currently for sending. What’s your use case with this?

I actually am looking to throttle sending. I need to put a limit on how many emails a given user can send per second/minute. By accepted / reception I meant messages accepted for sending (e.g. the reception log event).

Yeah we don’t have that in the roadmap at this time. You could limit traffic per connection using object: connectionmeta - KumoMTA Docs and you can of course throttle them for egress. You could also maintain a counter in Redis and reset it once per time window and start rejecting injections when they exceed the limit for the window.

And by rejecting I mean a 4xx tempfail.

FWIW, it’s probably only a couple of hours work for me to add lua bindings to our internal throttle logic if you wanted to sponsor and accelerate that.

I’m planning to discuss sponsoring a couple of features with you guys in the next few weeks, this would be one of them. Waiting to go through all the functionality I’ve planned in my application code and finish up the user dashboard so that I know what I’m missing exactly