Knowledge base

A queue that responds to degradation by itself

Reaction inside the connection, not via telemetry

The task. A recipient has started deferring or refusing, and the node must slow down right away rather than wait until the Hub telemetry notices.

What it is made of:

The parts have different scopes. All five are set per recipient and follow <domain> block merging, so they are usually written for a mailbox provider’s pattern rather than for one domain.

How they interact. Rate and retries take the normal values by default, and connections have their own default — 20: a queue in backoff mode without these lines behaves almost as before. The exit is forgotten most often: by default there is none, and the queue stays in backoff mode even after the cause has passed. And the queue must enter the mode on a trigger — a reply from <smtp-pattern-list> or a command.

The main trap is configuring backoff mode without a way into it. The five lines describe how to behave in the mode, but not when to enter it: without <smtp-pattern-list> with the mode=backoff action or the set queue command, the queue never enters the mode, and the lines never take effect.
What the Hub does. It applies it — with node preset lines in the mailbox provider rules inside every sending address: backoff-max-msg-rate, backoff-retry-after, backoff-to-normal-after together with backoff-to-normal-after-delivery, and backoff-max-smtp-out where the preset sets it. backoff-notify is written only if an address for notifications is set. Addresses under warm-up do not get these lines: their rate is held by warm-up.
Recommended values

Five lines and their defaults:

Line Default What to set
backoff-max-msg-rate as max-msg-rate a share of the normal rate
backoff-max-smtp-out 20 less than the normal limit
backoff-retry-after as retry-after a growing ladder
backoff-to-normal-after never an exit period
backoff-notify none an address someone reads
The lines and defaults come from the manual (§ 3.3.10.41, § 3.3.10.48, § 3.3.10.51, § 3.3.10.53, § 3.3.10.85); the mode=backoff action is § 3.3.15. The scheme itself is our hypothesis.
Example configuration
<domain [*.]gmail.com>
    backoff-max-msg-rate 100/h
    backoff-max-smtp-out 2
    backoff-retry-after 30m,1h,3h
    backoff-to-normal-after 1h    backoff-notify postmaster@example.com
</domain>
The numbers are for illustration; the key is the exit line, without which the mode does not end by itself.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
Compatibility
PowerMTA 6.0
described in the manual of this version · platform: any
The vendor does not state the first version for every directive — there is no note here. The name also appears in the 5.0 edition of the manual.
How to check on the node
Check the queue’s effective backoff values:
pmta show settings gmail.com/vmta1 | grep '^backoff-'
backoff-max-msg-rate equals the normal rate, and backoff-to-normal-after is never: the mode will slow nothing down and will not end.