Email Queue Rate Limiting via Sender Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing email sending technologies face challenges in controlling the email sending rate effectively, leading to potential rate limiting protections by email services, which can result in delayed or rejected email deliveries, especially when sending large volumes within a narrow time window.

Innovation Solution

Implementing a system that uses a delay queue, deduplication module, and semaphore to serialize and throttle email messages, ensuring that no two emails from the same sender are processed concurrently, and utilizing a sliding window to manage the rate of email processing, thereby avoiding rate limiting protections.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If email messages are sent in large volumes within a narrow time window, then productivity is improved, but rate limiting protection is triggered causing delayed or rejected deliveries

Engineering Contradiction:
Improveemail sending rateVSAvoidemail delivery success
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by enqueuing email messages before actual sending, using a delay queue to pre-process and schedule emails in advance. This allows the system to prepare large volumes of emails without immediately triggering rate limiting, thereby maintaining both high productivity and delivery reliability

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A delay queue is introduced as an intermediary component between the email generation source and the email service. This mediator buffers and serializes email messages, controlling the flow rate to avoid overwhelming the email service and triggering rate limiting protections, thus ensuring reliable delivery while maintaining sending capacity

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple email messages from the same sender are processed concurrently, then productivity is improved, but rate limiting protection is triggered

Engineering Contradiction:
Improveemail processing throughputVSAvoidrate limiting protection
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system segments email processing by sender identity, creating separate processing channels or queues for different senders. This segmentation allows concurrent processing of emails from different senders while controlling the rate for each individual sender, thereby maintaining high overall throughput without triggering rate limiting on any single account

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements periodic action by serializing email sending for each sender, ensuring that emails from the same sender are sent at regular intervals rather than concurrently. This periodic pacing prevents triggering rate limiting while maintaining efficient use of sending capacity across multiple senders

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS11539652B2Rate limiting actions with a message queue
Publication Date: 2022.12.27 SALESFORCE INC
  • US11539652B2 patent drawing
  • US11539652B2 patent drawing
  • US11539652B2 patent drawing

AI summary

Systems and methods for processing email messages are described. A method may include obtaining, from a database associated with the database system, data identifying a plurality of email messages for a plurality of email senders, the email messages associated with one or more sales cadences and an email service; enqueuing, by the server computing system, data identifying one or more email messages of the plurality of email messages into a queue provided that no data identifying two email messages associated with a first email sender are in the queue concurrently; and dequeuing, by the server computing system, the data identifying the one or more email messages from the queue, each dequeued data identifying an email message to be processed by the email service, wherein said enqueuing is performed provided that no dequeued data identifying two email messages associated with a second email sender are concurrently waiting to be processed by the email service.