Skip to content

docs(readme): round the 64 KiB batch bound out to the widest published row - #201

Merged
zannis merged 1 commit into
mainfrom
zannis/docs/batch-ratio-bound-at-64kib
Sep 11, 2026
Merged

docs(readme): round the 64 KiB batch bound out to the widest published row#201
zannis merged 1 commit into
mainfrom
zannis/docs/batch-ratio-bound-at-64kib

Conversation

@zannis

@zannis zannis commented Sep 11, 2026

Copy link
Copy Markdown
Owner

One published row falsifies the 1.35x bound added in #199.

Depends-on: none — corrects a claim already on main; the results document it cites is unchanged.

The counterexample

at 64 KiB the batch flow is at most 1.35x the parallel one on every backend

RabbitMQ, 64 KiB, one consumer: consume_batch 27 818 msg/s over consume_parallel 18 997 msg/s = 1.464x. Both rows are framework, both are method: drain, both publish.

The bound was read off the table's ratio column, which reports the ratio at each backend's best-throughput cell — for RabbitMQ that is 4c at 1.341. That column is correct and unchanged; it just isn't a maximum. Per-cell 64 KiB ratios, published cells only:

backend 1c 2c 4c 8c max
in-process 0.542 0.689 0.891 1.135 1.135
Kafka 1.030 1.030
NATS 1.109 1.131 1.121 1.186 1.186
RabbitMQ 1.464 1.260 1.341 1.464
Redis 1.169 0.755 1.013 1.169
SQS 1.152 1.054 1.030 1.147 1.152

Dashes are cells where one side of the pair is setup_bound or absent, so no ratio publishes. Rounded outward the true bound is 1.5x.

Second change: SQS's comparator

The paragraph says the ratio is "to the plain parallel consumer at that same cell". SQS has no consume_parallel rows — its flows are consume_batch, consume_fifo, dlq_drain, publish_* and supervisor, because HasCoordinatedGroups excludes it and ConsumerSupervisor is what it uses instead. The SQS figures in the table are batch over supervisor, which is the right comparator; the prose named a flow that backend does not record. One clause added.

What I checked

All eighteen table cells reproduce from benches/results/bench-results.json on main — best published (framework, method: drain) consume_batch cell per backend and payload, its consumer count, and the ratio at that cell. Every one matches, including SQS. No number in the table changes here.

Prose only; no code, no results document, no charts.

…d row

The bound reads the table's ratio column, which reports each backend's
best-throughput cell, as if it were that backend's maximum ratio. It is not.
RabbitMQ at 64 KiB with one consumer drains 27 818 msg/s batched against
18 997 msg/s parallel - 1.464x, both rows `framework`, both published - so a
"at most 1.35x" bound has a counterexample in the document it cites. Rounded
outward across every published 64 KiB cell the bound is 1.5x.

The table itself is unchanged: all eighteen cells reproduce from
`benches/results/bench-results.json`, and RabbitMQ's 1.3x is the ratio at the
4c cell the table names, which is correct.

Also names SQS's comparator. SQS has no `consume_parallel` rows - it is
`ConsumerSupervisor` there - so "the ratio to the plain parallel consumer"
described a flow that backend does not record.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 11, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
shove-docs d04a49f Commit Preview URL

Branch Preview URL
Sep 11 2026, 12:08 PM

@zannis
zannis merged commit 097eb8f into main Sep 11, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant