docs(design): revise 055 wildcard inbound links after review and spike - #266
Merged
Merged
Conversation
Match reaches user code only via with_match_deserializer as a borrowed TopicMatch<'a> (no RuntimeContext change, no per-message allocation). Split validation between build() and connector build; add a single AimDb::inbound_router used for both subscription and routing; MQTT subscribes the covering set of overlapping filters; key tables are owned by the link; key() returns Option<KeyId>; multi-level captures may be keys; resolver-returned patterns are allowed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KD5fpkpzuuiEjpGZMAxCxC
Lead with an evaluation of a spike implementation: allocation and latency measurements, both MQTT backends against one broker, Mosquitto delivering overlapping subscriptions once to MQTT 3.1.1 and twice to MQTT 5 clients, and key-table memory. Design changes from that evaluation: TopicGrammar becomes a trait (Zenoh's mid-pattern ** needs it); one key table per record, grown lazily, reported in RecordMetadata::inbound_keys; grammar-dependent checks move to connector build; all in-tree connectors move to inbound_router; compatibility caveat for two public structs gaining fields. Key reuse and a pattern index are non-goals. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KD5fpkpzuuiEjpGZMAxCxC
5 tasks
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.
Description
Revises design doc 055 (wildcard inbound links) after a review and a throwaway spike that implemented the design. The spike code is not in this PR; this PR changes only
docs/design/055-wildcard-inbound-links.md.New §3 Evaluation. Everything here was measured on the spike:
mountain-mqttaccepts+in SUBSCRIBE.Design changes:
with_match_deserializer, as a borrowedTopicMatch<'a>.RuntimeContextandIngestFnare unchanged, and pattern routes don't allocate.TopicGrammaris a trait implemented by connectors, passed as&'static dyn. This is needed for Zenoh's**in the middle of a pattern and for its hidden@…chunks.AimDb::inbound_routeris used for both subscribing and routing. Every in-tree connector moves to it.build(), and checks that need the grammar fail when the connector builds.RecordMetadata::inbound_keys.InboundConnectorLinkandRecordMetadatagain fields, and both should be marked#[non_exhaustive].Related Issue
Checklist
make check). (Not run: no code changes.)🤖 Generated with Claude Code
https://claude.ai/code/session_01KD5fpkpzuuiEjpGZMAxCxC
Generated by Claude Code