Skip to content

feat(adapters): align channel adapter with RFC 1#20

Merged
Garfield550 merged 6 commits into
mainfrom
feat/rfc1-channel-adapter-alignment
May 23, 2026
Merged

feat(adapters): align channel adapter with RFC 1#20
Garfield550 merged 6 commits into
mainfrom
feat/rfc1-channel-adapter-alignment

Conversation

@Garfield550

Copy link
Copy Markdown
Collaborator

Summary

  • align the channel adapter send path and terminal handling with RFC 1 semantics
  • preserve original channel writer failures, fail fast on transient outbound pressure, and keep transport-fatal ordering deterministic for pending unary and active stream invokes
  • respect CompleteOutboundOnDispose for custom endpoints on remote close and fault, and document the intentional malformed-input regression probe in tests

Validation

  • dotnet test --project tests/Eventa.Adapters.Tests/Eventa.Adapters.Tests.csproj --configuration Release --filter-class Eventa.Adapters.Tests.Channels.ChannelPipeTests
  • dotnet test --project tests/Eventa.Tests/Eventa.Tests.csproj --configuration Release
  • dotnet build Eventa.slnx --configuration Release --no-restore

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR aligns the Eventa.Adapters.Channels transport behavior with RFC 1, focusing on deterministic terminal handling and clearer outbound-send semantics under terminal states vs. transient outbound pressure.

Changes:

  • Update channel adapter send path to fail fast on transient outbound pressure while preserving original channel-writer failure exceptions when terminal.
  • Adjust endpoint termination to respect CompleteOutboundOnDispose for remote close/fault and harden cancellation races during termination.
  • Expand/refresh channel adapter tests to cover deterministic ordering (invoke/stream faults vs. closed event), writer-failure propagation, and disposal races; update docs to reflect adapter/AOT posture.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/Eventa.Adapters.Tests/Channels/ChannelPipeTests.cs Adds/updates tests for RFC-1 terminal ordering, fail-fast behavior, and exception-shape preservation.
src/Eventa/Support/AsyncSignalQueue.cs Switches channel options to allow synchronous continuations (behavioral change).
src/Eventa.Adapters/Channels/ChannelMessages.cs Makes ChannelMessage.Envelope non-nullable (tightens contract).
src/Eventa.Adapters/Channels/ChannelEndpoint.cs Uses CompleteOutboundOnDispose for inbound close/fault termination and hardens CTS cancellation against disposal races.
src/Eventa.Adapters/Channels/ChannelAdapter.cs Implements non-blocking send probing to distinguish transient backpressure from terminal writer state; preserves writer exception shapes.
README.md Documents adapter/AOT characteristics and clarifies channel adapter constraints.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Eventa.Adapters/Channels/ChannelAdapter.cs Outdated
Comment thread src/Eventa.Adapters/Channels/ChannelEndpoint.cs Outdated
Comment thread src/Eventa/Support/AsyncSignalQueue.cs

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Comment thread src/Eventa.Adapters/Channels/ChannelAdapter.cs

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Comment thread src/Eventa.Adapters/Channels/ChannelAdapter.cs Outdated
Comment thread src/Eventa.Adapters/Channels/ChannelOptions.cs Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated no new comments.

@Garfield550 Garfield550 merged commit 0b961bb into main May 23, 2026
3 checks passed
@Garfield550 Garfield550 deleted the feat/rfc1-channel-adapter-alignment branch May 23, 2026 12:52
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