Skip to content

Tighten NexGen docs and add C# support - #5609

Open
Duncanma wants to merge 5 commits into
mainfrom
duncan/temporal-nexus-docs-review-033b80
Open

Duncanma wants to merge 5 commits into
mainfrom
duncan/temporal-nexus-docs-review-033b80

Conversation

@Duncanma

@Duncanma Duncanma commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • NexGen page (/nexus/nexgen): rewritten so each point is stated once. The intro leads with what NexGen generates, the "How it works" section that repeated the intro is gone, and the page links to a complete contract in the Java walkthrough.
  • C# support: NexGen v0.2.11 (2026-10-29) added C# generation. C# is now in the page description, release header, body, and the edge case about nanosecond timestamps, and in the language lists in glossary.md and the Java walkthrough's call-the-standalone-activity.mdx.
  • Validation errors: the old text said "a handler maps that to BAD_REQUEST." The page now says the Worker rejects invalid input with a non-retryable BAD_REQUEST Nexus handler error before the Operation handler runs. It no longer claims the caller always receives every violation, because NexGen's spec says Go loses the details.
  • Feature guides (Go, Java, Python, TypeScript, .NET): the repeated "This is what makes a Nexus Service polyglot" passage is now two shorter paragraphs with the same BAD_REQUEST wording.

How the BAD_REQUEST behavior was checked

NexGen's own test suites cover Go, Python, and C#. For Java and TypeScript, I sent a deliberately invalid input to the generated knowledge-base Service sample, registered on a real Worker, using a caller that skips the generated input type:

SDK Result
Java 1.35.0 Retried until the schedule-to-close timeout; the validation error was lost
Java 1.39.0 and 1.40.0 Non-retryable BAD_REQUEST, about 130 ms; caller receives a PayloadValidationError
TypeScript 1.23.0 and 1.25.0 Non-retryable BAD_REQUEST, about 30 ms; caller receives a PayloadValidationError

NexGen already requires Java SDK 1.39.0 or later, so the page links to NexGen's SDK requirements instead of naming versions. The handler never ran in any case.

Draft because

NexGen's C# support shipped the day before this PR. Before this is marked ready, someone on the NexGen team should confirm the C# claims and the BAD_REQUEST wording.

Checks

  • vale --config .vale-ci.ini reports nothing on all 8 files.
  • Pages render on the local dev server with no MDX errors. A full yarn build was not run.

Rewrite the NexGen page to state each point once, add C# (NexGen v0.2.11),
and describe input validation failures as a non-retryable BAD_REQUEST that
the Worker returns automatically. Apply the same rewrite to the NexGen
passage in the five Nexus feature guides, and add C# to the language lists
in the glossary and the Java walkthrough.
@vercel

vercel Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
temporal-documentation Ready Ready Preview Oct 30, 2026 11:19pm UTC

Request Review

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

📖 Docs PR preview links

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Related walkthrough pages still contain inconsistent validation-error handling descriptions and outdated language counts and lists that omit C#.

2 open issues
What changed in this PR

This documentation-only PR streamlines NexGen explanations, documents C# support, and aligns validation-error wording across the Nexus feature guides.

Changes:

  • Consolidates the NexGen page and links to a complete contract example and SDK requirements.
  • Adds C# to language lists and updates the timestamp-precision caveat.
  • Describes invalid Operation input as rejected by the Worker before handler execution.
File Description
docs/​glossary.md Updates NexGen’s definition and supported languages.
docs/​encyclopedia/​nexus/​nexgen.mdx Consolidates explanations and updates C# and validation details.
docs/​develop/​typescript/​nexus/​feature-guide.mdx Shortens contract guidance and clarifies validation errors.
docs/​develop/​python/​nexus/​feature-guide.mdx Shortens contract guidance and clarifies validation errors.
docs/​develop/​java/​nexus/​feature-guide.mdx Shortens contract guidance and clarifies validation errors.
docs/​develop/​java/​nexus/​development-walkthrough/​call-the-standalone-activity.mdx Adds C# as a cross-language caller option.
docs/​develop/​go/​nexus/​feature-guide.mdx Shortens contract guidance and clarifies validation errors.
docs/​develop/​dotnet/​nexus/​feature-guide.mdx Shortens contract guidance and clarifies validation errors.

Review effort: Balanced

- **Timeouts and escalation.** Give the approval a deadline and escalate or auto-deny when it passes.
- **Split the Workers.** Run the Nexus Service, the approval Workflow, and the notification Activity on separate Worker fleets. See [Nexus patterns](/nexus/patterns).
- **Callers in other languages.** Generate a caller from the same contract in Go, Python, or TypeScript. See [NexGen](/nexus/nexgen).
- **Callers in other languages.** Generate a caller from the same contract in C#, Go, Python, or TypeScript. See [NexGen](/nexus/nexgen).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the walkthrough counts and language lists to include C# (five languages total) in commit a4097cb.


Failures aggregate into a single error listing every violation, each naming the offending field and the constraint it broke.
A handler maps that to a `BAD_REQUEST` [Nexus handler error](/nexus/error-handling), so a malformed request tells the caller everything that was wrong in one response.
When an Operation's input fails validation, the Worker rejects it with a non-retryable `BAD_REQUEST` [Nexus handler error](/nexus/error-handling) before your Operation code runs.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the walkthrough to match the Worker’s non-retryable BAD_REQUEST rejection before the Operation handler runs. Commit: bb45de3.

Copilot AI and others added 2 commits October 30, 2026 21:46
Co-authored-by: Duncanma <18338424+Duncanma@users.noreply.github.com>
Co-authored-by: Duncanma <18338424+Duncanma@users.noreply.github.com>
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ Duncanma
❌ Copilot
You have signed the CLA already but the status is still pending? Let us recheck it.

@Duncanma
Duncanma marked this pull request as ready for review October 30, 2026 23:18
@Duncanma
Duncanma requested a review from a team as a code owner October 30, 2026 23:18

This branch was successfully deployed

1 active deployment
Preview — 1852a3f7 Deployed Oct 30, 2026 by vercel[bot]
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.

4 participants