Overview / Start here

Read the MQTT export measurements

Exact workload, image identities, valid attempts and thermal limits behind the October 2026 operating-point table.

Recorded installed-image experiment; workload-specific

The machine-readable evidence summary records source-report hash, exact installed image IDs, sampled rates, attempts and acceptance bounds. The Home measurements use this experiment alone.

What was measured?

MQTT 3.1.1 over plain TCP, QoS 1 ingress/export, 128-byte payloads, 200 connections and 30-second offers. Product containers shared a fixed three-physical-core budget on an Intel Core i7-3615QM host; a separate machine generated traffic. The selected profile stored broker/export state in memory. PostgreSQL durability and recovery capacity need separate evidence.

Installed subject Highest sampled rate with repeated valid passes Valid passes / attempts
CitusIO Max Alpine 80,000 messages/s 2 / 4
CitusIO Max Debian 80,000 messages/s 3 / 4
Mosquitto 2.1.2 40,000 messages/s 4 / 4
EMQX 6.3.2 15,000 messages/s 2 / 2

The 80k/s CitusIO confirmation pairs retained the original generator recipe, images, CPU budget and every acceptance guard. Original invalid offers remain in the recorded attempt counts and provide no pass credit. The earlier 60k/s focused experiment is separate and its passes are not pooled into this table.

How does payload size change throughput?

These are sampled passing export rates in messages per second. The 64 KiB column records the common 1,000/s workload; it supplies no ceiling estimate.

Installed image 128 bytes 1 KiB 64 KiB
CitusIO Max Alpine 80,000 50,000 1,000
CitusIO Max Debian 80,000 50,000 1,000
Mosquitto 2.1.2 40,000 30,000 1,000
EMQX 6.3.2 15,000 15,000 1,000

What are latency and resource costs at the same load?

The resource comparison uses 10,000 messages/s, 128-byte payloads, 200 connections and five-minute offers on the same host and CPU allocation. Each image delivered three million messages. Only the listed images have this recorded sustained measurement.

Installed image ACK p95 ACK p99 CPU time (core-seconds) Peak sampled PSS
CitusIO Max Alpine 0.659 ms 0.871 ms 431.69 466.9 MiB
Mosquitto 2.1.2 0.550 ms 0.713 ms 190.31 8.3 MiB
EMQX 6.3.2 0.728 ms 1.086 ms 1,274.40 488.1 MiB

ACK percentiles come from the ingress publish-acknowledgement histogram captured at the offer deadline. They measure publisher-to-broker acknowledgement and exclude post-offer settlement. The p95 values are extracted from the original raw sustained summary; its path and SHA-256 are in the downloadable evidence.

CPU time is the sum of product CPU core-seconds over the recorded perf attachment interval, including setup and collection around the offer. It is not a CPU utilization percentage. PSS accounts for shared memory pages across product processes; the evidence also retains RSS. Both are sampled high-water observations. These resource values describe the five-minute 10k/s workload; they cannot be applied to the 30-second throughput measurements above.

What makes an attempt pass?

The offer must be valid. The independent sink must receive exactly the expected messages and payload bytes. Ingress ACK p99 and oldest pending ACK must stay within one second. Deadline backlog must stay within 1.25 seconds of offered work and post-deadline drain within two seconds. Eventual delivery after these bounds cannot make a failed attempt pass.

The complete experiment retained 125 measured cells: 85 strict passes, 17 valid offers failing product limits and 23 invalid offers. It includes larger-payload, equal-load and sustained tests; the table above selects only its stated 128-byte operating points.

What limits the comparison?

The host reached 103°C and its package throttle counter increased by 146. These observations bind the recorded machine, images and conditions. Thermal control and a portable causal product ranking were outside the experiment. The values are sampled operating points; no universal broker ceiling is claimed.

Payload size, fanout, connections, state durability, security, provider behavior and hardware change the outcome. Use the profile your workload requires and measure the exact image and configuration before sizing production traffic.

The immutable internal source report is identified by path and SHA-256 in the downloadable summary. No new benchmark or broad performance matrix was run for this website rewrite.

Implementation authority

This page is a customer-oriented guide. The source contract remains authoritative for exact behavior and release evidence.

perf/e2e-mqtt-bridge-comparison/reports/2026-10-20-mini-debian-full-installed.md