Nothing in a standard queue stops one heavy tenant from crowding out everyone else by default. The queue cannot tell which customer produced a message unless the message says so, and it will not favor quiet tenants unless its delivery logic is told to. In Amazon SQS standard queues, fair queues close that gap by using MessageGroupId as a tenant label. They shorten the wait for quiet tenants, but they do not cap how much the noisy tenant consumes. Apache Kafka takes a different route: client quotas throttle clients that exceed a configured share of broker resources, while partition assignment only decides which consumer in a group reads which partition. Neither mechanism is a per-account fairness guarantee on its own.
What “account” and “consumer” mean here
In this article, an “account” is a tenant: a customer, application, or request type that shares a queue or broker with other tenants. “Consumer” is ambiguous. It can mean the account that generates work, a worker process, or an entire consumer group. The SQS fair-queue mechanism works on tenant messages, not on worker processes. Kafka quotas apply to client groups identified by authenticated user, client ID, or both. Kafka partition assignment distributes partitions among the consumers in a group. These three things solve different problems, so keep them separate when you design for fairness.
How Amazon SQS fair queues work
Amazon Web Services describes fair queues as a way to automatically mitigate noisy-neighbor effects in multi-tenant queues (Amazon SQS fair queues). The mechanism has three parts.
Step 1: Label each tenant’s messages
Producers set MessageGroupId on each message. Messages that share a value belong to one tenant. AWS recommends a meaningful value on every message, such as a customer ID, an application ID, or a request type. A message without the attribute is treated as its own separate tenant, so leaving it out does not group one account’s work together. On standard queues the attribute needs no consumer-code changes and does not impose ordering. That is a different role from its use in FIFO queues, where MessageGroupId controls ordering.
#1 Best Overall
- This Wire-O book contains spaces for you to keep track of tenants, performed and upcoming maintenance, income & expense per property, etc.
- There is enough space for landlords and property managers to track 5 rental properties and 34 tenants
- 100 Pages, Wire-O, 8.5" x 11" - Reorder SKU: LOG-100-7CW(RentalProperty
- Made in USA, Proudly Produced in Ohio. Veteran-Owned.
- Made in the USA: Proudly produced in Ohio by a veteran-owned business; commitment to quality and American craftsmanship
Step 2: Detect a noisy tenant
The detailed AWS guide describes two signals (How Amazon SQS fair queues work):
| Signal | What it measures | Documented approximate trigger |
|---|---|---|
| Concurrency share | The tenant’s in-flight messages as a fraction of all in-flight messages in the queue | More than 10% of in-flight messages, and at least 30 in-flight messages for that tenant |
| Processing-time share | The tenant’s recent share of consumer processing time | More than 10% of recent processing time |
The two signals catch different behavior. A tenant with many messages in flight is disruptive in the first way. A tenant with fewer messages that each take unusually long to process is disruptive in the second. AWS calls these thresholds approximate in a distributed system, and activation may not occur at the exact values shown. Treat the numbers as documented operating points, not as a precise switch. The AWS Developer Guide pages do not show a publication date, so confirm the current values in the live guide before you rely on them in a design.
Rank #2
- HARDCOVER - This beautifully bound, black textured, lay flat reservation book is great for restaurant, bar, or fine dining experience.
- COMPLETE LAYOUT - Each dated page features 11am to 10pm time slots with columns for name, number of guests, phone number, and table number.
- THE PERFECT SIZE - Measuring 13.5 inches by 8.5 inches, this reservation book will lay flat and look fantastic on any podium or lectern.
- GUARANTEED QUALITY - High quality heavy-duty and BUILT TO LAST! Made by Global Printed Products. We are a family-owned USA company and we have been making quality products for over 50 years.
Step 3: Prioritize quiet tenants instead of rejecting the noisy one
After a tenant is flagged, SQS prioritizes delivery of quiet tenants’ messages while those messages are available. Noisy-tenant messages are not dropped or throttled. Their dwell time rises, meaning they wait longer in the queue. When no quiet-tenant messages are waiting, noisy-tenant messages are delivered as usual. A tenant stops being treated as noisy when its backlog is consumed, or when it has had no messages in flight for five continuous minutes.
What fair queues do not do
AWS states plainly: “Amazon SQS does not limit the consumption rate per tenant” (Amazon SQS fair queues). Fairness here is therefore a priority rule, not a per-account quota. An account that is the only one with work keeps being served, and fair queues only change the order when another tenant is waiting.
Setting up fair queues so the signal works
- Set
MessageGroupIdon every message. Map it to a real entity such as a customer ID, application ID, or request type, so that one account’s messages share one value. - Size concurrency for detection. The concurrency-share signal needs enough parallel processing to make one tenant’s share visible. With too little concurrency, one tenant’s share is hard to observe.
- Account for Lambda settings together. With Lambda event source mappings, consider function concurrency and batch size as one setting, not two separate tuning decisions.
- Use fair queues where they fit. AWS describes them as most relevant when a queue is multi-tenant, high-throughput, and message dwell time matters to service quality.
How Kafka handles the same problem
Client quotas throttle heavy clients
Kafka documents client quotas for network bandwidth and request-processing rate. Quota groups can be keyed on authenticated user, client ID, or the combination of both. When a client exceeds its configured share, the broker throttles it. Kafka’s multi-tenancy documentation recommends quotas to stop users from consuming excessive shared broker resources, and it notes that monitoring can include consumer lag and quota metrics (Apache Kafka multi-tenancy). That page shows a last-modified date of May 22, 2026.
Partition assignment is not tenant fairness
Kafka’s design documentation says each partition is consumed by exactly one consumer within a subscribing consumer group at a time (Apache Kafka design). This spreads parallel work across consumers. It does not recognize customer accounts inside a partition, so messages from different accounts that land in the same partition are not separated by assignment. If you need that separation, you have to handle it through how messages are keyed and routed, or through quotas that apply at the client level.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.SQS fair queues and Kafka side by side
| Aspect | SQS fair queues (standard queues) | Kafka client quotas | Kafka partition assignment |
|---|---|---|---|
| How a tenant is identified | MessageGroupId on each message |
Authenticated user, client ID, or both | Not a tenant identity; assignment is per partition |
| Fairness objective | Lower dwell time for quiet tenants | Limit broker bandwidth or request-processing share per client group | Spread parallel work so one consumer reads each partition at a time |
| Hard throttle on a heavy tenant or client | No; AWS states SQS does not limit the consumption rate per tenant | Yes; the broker throttles clients that exceed their configured share | No |
| When it takes effect | When a tenant crosses the detection thresholds and quiet-tenant messages are waiting | When a client exceeds its configured quota | Continuously, as part of group assignment |
| Metrics to watch | Quiet-group metrics, queue-wide backlog, and age metrics | Quota metrics and consumer lag | Consumer lag |
When these controls are not enough
If a contract promises each account a minimum service rate, neither mechanism delivers that by itself. SQS fair queues do not limit or guarantee a tenant’s rate, and Kafka quotas cap heavy clients without establishing a floor for everyone else. The cited sources do not describe a universal design for strict per-tenant guarantees. In practice, that usually means explicit rate allocation within the application, or separate workload pools for accounts that need guaranteed capacity. Choose the design from your own service requirements, not from these mechanisms alone.
Measuring whether the protection works
- On SQS, track quiet-tenant backlog and dwell time, along with the quiet-group metrics AWS documents. Compare them against queue-wide backlog and age during a noisy burst.
- On Kafka, track consumer lag and quota metrics for each client group. A client that repeatedly hits its quota is a sign the limit is doing its job, and a client that never hits it may not need one.
Measure before and after a real traffic spike. The goal is to confirm that quiet accounts keep their latency during the spike, not just that the setting is enabled.
Quick Recap
Best Value
- Keep track of everything from attendance to test scores
- Spiral bound
- Measures 8-1/2" x 11"
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




