Skip to content

Add Wire Tap feature for endpoint-level message auditing#2441

Merged
jeremydmiller merged 1 commit intomainfrom
2222-wire-tap
Apr 6, 2026
Merged

Add Wire Tap feature for endpoint-level message auditing#2441
jeremydmiller merged 1 commit intomainfrom
2222-wire-tap

Conversation

@jeremydmiller
Copy link
Copy Markdown
Member

Summary

  • Implements the Wire Tap pattern from EIP for endpoint-level message auditing, compliance, and monitoring
  • Adds IWireTap interface with RecordSuccessAsync(Envelope) and RecordFailureAsync(Envelope, Exception) methods
  • Wire taps are configured per-endpoint via UseWireTap() fluent API on listeners, senders, and local queues
  • Supports keyed DI services (UseWireTap("key")) to vary wire tap implementations across endpoints
  • Can be applied in bulk via opts.Policies.AllListeners(), AllLocalQueues(), and AllSenders()
  • Wire tap calls are wrapped in try/catch safety nets and fire-and-forget to stay off the hot path
  • Includes documentation in the logging/auditing page with BatchingChannel recommendations

Closes #2222

Test plan

  • Wire tap records success on message handled
  • Wire tap not called when not configured on endpoint
  • Wire tap not set on endpoint without configuration
  • UseWireTap flag works correctly
  • Default wire tap used without key
  • Keyed wire tap used with service key

🤖 Generated with Claude Code

Implements the Wire Tap pattern (EIP) allowing users to record copies of
messages flowing through configured endpoints for auditing, compliance,
analytics, or monitoring. Wire taps are configured per-endpoint via
UseWireTap() on listeners, senders, and local queues, with support for
keyed DI services to vary implementations across endpoints.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jeremydmiller jeremydmiller merged commit ba251f3 into main Apr 6, 2026
17 of 19 checks passed
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.

First class "Wire Tap" Feature

1 participant