The sdk names no transport, and fixtures say what two implementations may not disagree about #8

Merged
jschoubben merged 2 commits from feat/nats-genesis into main 2026-09-27 17:08:39 +00:00
Owner

Small. The sdk stops naming a transport, so a module written against it does not have to know which bus the mesh runs. And conformance fixtures record the facts both implementations have to agree on — captured from a running server, not written from what I expected, which is how the first version of this got the redelivery semantics wrong.

Small. The sdk stops naming a transport, so a module written against it does not have to know which bus the mesh runs. And conformance fixtures record the facts both implementations have to agree on — captured from a running server, not written from what I expected, which is how the first version of this got the redelivery semantics wrong.
jschoubben added 2 commits 2026-09-27 16:59:18 +00:00
Task 3.7 of novox/hq ADR 0116, and the whole of the sdk's diff for the bus
change. Three comments said AMQP where they meant 'message headers' and 'a
broker client'; the code never spoke it, which is why no module is rebuilt
for any of this (ADR 0039).
Tasks 3.1 and 3.3 of novox/hq ADR 0116. One fixture directory, read by
every implementation's own runner rather than copied into each — a fixture
copied twice is two fixtures, and two fixtures drift.

The README settles what ADR 0074's byte-for-byte can and cannot mean. The
envelope is exact: the subject, the required headers, each name and format,
because those are what two implementations get wrong invisibly. The body is
not: it is the module's payload, and Go sorts a map's keys where JavaScript
keeps insertion order, so demanding identical bytes would commit every
implementation to a canonical JSON encoder to buy a property the mesh never
uses. Said plainly, because read strictly it would have sent somebody
writing one.
jschoubben merged commit 163f85ac35 into main 2026-09-27 17:08:39 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-sdk#8