Skip to content

Encode Nexus arguments with the portable Avro codec - #113

Merged
rmcdaniel merged 2 commits into
mainfrom
fix-nexus-avro-wire
Oct 11, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
fix-nexus-avro-wire

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

Fix

Part of #112. Nexus arguments now use the SDK's existing fixed-schema Avro serializer and matching codec field. This corrects the plain JSON argument list that reached the published PHP service as missing workflow input.

Focused tests decode the actual outgoing bytes for empty, scalar, nested and binary arguments, reject JSON codecs, check the recorded request and preserve the existing deterministic idempotency input. Eleven focused client/replay/wire tests pass in a bounded Python 3.12 container.

Oversized Nexus arguments now use runtime payload upload without changing the recorded Avro request. Inline arguments stay serialized strings. Oversized payloads beyond the runtime limit are refused before upload or admission. The minimal Avro corpus fixture reproduces the original lost argument value.

Normal source, package, Python 3.10/3.11/3.12, integration, docs, corpus and target-branch checks pass at 4fd2468. Published consumer qualification follows the release and Server transport fix durable-workflow/server#396. Issue #112 stays open through that verification. Target-namespace addressing is separately tracked in #111. Terminal linked service/caller convergence is durable-workflow/workflow#753.

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.

2 participants