Knowledge base

batch-frequency

<inline-seeding>

How often the node checks in with the seeding service
in the configuration this is a linebatch-frequency 15sinside the block <inline-seeding>
The rhythm of the conversation with the service

The line sets how often the node contacts the service to reconcile the job counters and receive seed assignments. The default is 15s, the allowed range is from fifteen seconds to five minutes.

The second condition is volume, persist-threshold: reconciliation happens on whichever comes first.

Increasing it is safe for long mailings — so the vendor says. The idea is the same: fewer requests for the same work.

The price of increasing it is timing precision. Seeds are inserted into the mailing as it goes, and infrequent reconciliation means an assignment arrives later than it could.

The main trap is raising both the threshold and the interval at once. There are only two conditions, and both are weakened: reconciliation becomes infrequent on both, and on a short mailing it may not happen at all.
What the Hub does. It does not write it: we do not use the vendor’s seeding — it requires a paid subscription to its tool and an account with the feature enabled.

🔎 The task is close to ours. Seed mailboxes — what we were going to use to measure inbox placement — are solved here by the vendor: addresses are inserted into the mailing automatically, and the results are viewed in its own tool. Our analysis showed that doing it ourselves runs into proxies: polling mailboxes from a single address ends with them being blocked.

Recommended values

The value is chosen by the size and duration of mailings:

Value When
15s (default) mailings are short
1m–5m jobs run for hours
The 15s default, the range and the advice to increase it for long jobs come from the manual (§ 11.2.2.2.4).
Example configuration
<inline-seeding>
    api-key 0123456789abcdef012345678901234567890123
    batch-frequency 5m</inline-seeding>
Together with a raised volume threshold, this can mean a short mailing never reconciles at all.
yellow — — directive names, blue — blocks. They are highlighted the same way in the text of the card.
▲

Common mistakes and problems

what people get wrong and how it ends2 mistakes▶

Weakening both reconciliation conditions at once

our experience

What it costsThere are two conditions, and both are weakened. On a short mailing reconciliation may not happen even once, and no seeds will get into it.
How to spot itShort mailings go out without seeds.
How to do it rightWeaken only one of them and check on a real mailing.

Expecting seeding without a subscription to the vendor's tool

§ 11.2

What it costsThe mechanism requires an account with the feature enabled and paid access to the deliverability tool. Without that, a key cannot be created, and so seeding cannot be enabled.
How to spot itThe block is configured, but seeds do not appear in mailings.
How to do it rightCheck the subscription and the key’s rights in the vendor’s account.
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.
Reference data
Syntax
batch-frequency <value>
Values
an interval from 15s to 5m
Default
15s § 11.2.2.2.4
Applying
reload, no restart needed
Queue
will not touch what is already queued
Where to write it
<inline-seeding>
How many times
once in the block
Everything here comes from the manual, with the section.
Inheritance
No inheritance: the line lives inside <inline-seeding>, and there is only one such block on a node. Enabling seeding per stream is configured not here but with the enable-inline-seeding line with three levels.
How to check on the node
The rhythm of requests is visible in the engine log:
grep -i "seed" /var/log/pmta/log | tail -20
The gaps should match the interval — or be shorter if the volume threshold fires earlier.
In the Hub
Cost of a mistake
safe: a wrong value breaks nothing
Scenarios
Seeding and seed mailboxes