Skip to content

Implement SignalR subscription gateway for real-time event streaming  #527

@qodo-free-for-open-source-projects

Description

Description

  • Enable real-time event streaming from Eventuous subscriptions to connected clients via SignalR
  • Bridge the existing Gateway pattern (GatewayHandler + BaseProducer) with SignalR hubs
  • Provide both server-side subscription management and client-side typed subscription API
  • Support position-based deduplication and automatic reconnection with state recovery

Deliverables

  • Server Gateway: SubscriptionGateway<THub> managing per-connection subscription lifecycle with SignalRProducer and SignalRTransform
  • Server Hub: SignalRSubscriptionHub exposing SubscribeToStream and UnsubscribeFromStream methods
  • Client Streaming: SignalRSubscriptionClient providing IAsyncEnumerable<StreamEventEnvelope> with auto-reconnect
  • Typed Handlers: TypedStreamSubscription with fluent On<T> API and optional OpenTelemetry tracing
  • Wire Contracts: Shared StreamEventEnvelope and StreamSubscriptionError via compile-time source linking
  • Unit Tests: 12 tests covering producer, transform, gateway lifecycle, and typed subscription

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions