Per-campaign rate limits configurable
Why it matters
Not all campaigns carry the same deliverability risk. A reactivation campaign to a cold list should send at a fraction of the rate appropriate for an active engaged segment. When all campaigns share a single global rate, a high-risk campaign — cold list, broad reach, lower expected engagement — runs at the same throughput as a tight re-engagement campaign, exposing the IP's reputation to the full complaint rate of the worst-performing send. Per-campaign configurable limits let operators deliberately throttle risky campaigns without touching the global settings or pausing the system.
Severity rationale
Low because the absence of per-campaign limits does not cause immediate delivery failure, but it removes a key operational lever for managing deliverability risk on a per-send basis without global system changes.
Remediation
Add rate configuration fields to the campaign schema so the dispatch worker can read per-campaign limits at runtime:
// In prisma/schema.prisma
model Campaign {
id String @id @default(uuid())
name String
subject String
maxPerHour Int? // null = use system default
maxDailyVolume Int? // null = no campaign-level cap
sendWindow Json? // { start: "09:00", end: "17:00", tz: "America/New_York" }
status CampaignStatus
scheduledAt DateTime?
createdAt DateTime @default(now())
}
// In campaign dispatch worker:
export async function getCampaignRateLimit(campaignId: string): Promise<number> {
const campaign = await db.campaign.findUnique({ where: { id: campaignId } })
return campaign?.maxPerHour ?? DEFAULT_CAMPAIGN_RATE
}
Read maxPerHour and maxDailyVolume before creating the limiter for each campaign run. Expose these fields in the campaign creation UI so marketing can self-serve conservative limits without an engineering change.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Deliverability Engineering Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- iso-25010:2011 · performance-efficiency — ISO 25010 Performance Efficiency characteristic
Taxons
History
- 2026-04-18·v1.0.0·Initial import from deliverability-engineering·automated