Repository navigation
Stage 12: round-trip allocation gate and Embassy outage semantics (design 054 §5, §8) - #290
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ers (design 054 §8) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…054 §5) Embedded: 0 per round trip. Native: at most 11, rumqttc's own. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
lxsaah
marked this pull request as ready for review
October 5, 2026 17:48
CI ran green on this PR; the trigger is not kept on the feature branch. This reverts commit 5cf41bc. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stage 12 of the 054 implementation plan (checkpoint): the round-trip allocation gate for both MQTT backends, outage semantics on the Embassy buffers, and a live run of the native MQTT examples.
Commits
ci: run CI and the docs check for the 054 feature branch.ci.ymlanddocs.ymlnow also trigger on pushes to, and PRs into,feat/054-connector-boundary.docs.ymldeploys GitHub Pages only forrefs/heads/main, so nothing is published from here. This existed to get one full CI run for the checkpoint, and is reverted in commit 4.test(embassy): outage semantics of OutboundRoutes on the Embassy buffers.aimdb-embassy-adapter/tests/outbound_routes.rs: anAimDbonNoopRuntimeOpswithEmbassyBuffers throughbuffer_raw, driven with a no-op waker. Gated onembassy-syncandembassy-time; it runs in the adapter's existing Makefile test leg.[4], mailbox[4]and SPMC[0, 1, 2, 3, 4]. Ten values into a four-slot ring give a lag of 6, then[6, 7, 8, 9]. Nothing for stage 17 to document beyond the shared behaviour.test(mqtt): gate allocations per round trip on both backends.aimdb-mqtt-connector/tests/alloc_round_trip.rs(_test-backend-parity). One round trip: produce → PUBLISH QoS 1 → the broker's PUBACK and echo → inbound dispatch → the client's PUBACK →recv.echo_brokerintests/common: it relays a client's publish back at QoS 1 when the client subscribed to that topic, in the client's protocol version (MQTT 5 for embedded, 3.1.1 for native).make testandmake clippybesidebackend_parity.rumqttc's own work (owned topic and payload, its request), so arumqttcupdate can move it.TCP_NODELAY). The test therefore takes about 17 s.Revert "ci: run CI and the docs check for the 054 feature branch". CI ran green on this PR, so the trigger isn't kept. Merged, this PR changes no workflow file.Live run: native MQTT examples against
mosquitto2.0.11The broker had four listeners: 1883 plain/anonymous, 1884 plain/password, 8883 TLS/anonymous and 8884 TLS/password. A self-signed test CA was trusted through
SSL_CERT_FILE.tokio-mqtt-connector-demo(11 s per case; a command published tocommands/temp/indoorafter 6 s):tokio-native-tls)tokio-native-tls)tokio-rustls)tokio-rustls)ConnectionRefused(NotAuthorized), retried every 5 smqtts://without a TLS featureWeather mesh (
weather-hub,weather-station-alphawith real open-meteo data,weather-station-betasimulated; 30 s each on the anonymous and the password listener):TemperatureV2readings from both stations.mqtt://{MQTT_BROKER}, so TLS can't be exercised with them. The password works throughMQTT_BROKER=user:pass@host:port.Found during the run (not changed here): when the native event loop errors, it logs the broker URL including the password from its authority (
MQTT event loop error for mqtt://aimdb:nope@localhost:1884: …). This predates 054.Verification
alloc_round_trip2 passed.outbound_routes(Embassy) 2 passed. Every Embassy adapter host test and clippy leg passes, andbackend_parity8,tokio_broker9 andsession_loop7 pass with the extendedtests/common.cargo fmt --all --check: clean.🤖 Generated with Claude Code