Skip to content

feat: PulseGrpcStreamService and MapStreamQueryGrpc() for gRPC server-streaming (Low Priority) #299

Description

@samtrion

User Story

As a developer exposing Pulse stream queries over gRPC, I want PulseGrpcStreamService and MapStreamQueryGrpc(), so that gRPC clients can consume IMediator.StreamQueryAsync results via server-streaming RPCs.


Background

⚠️ Low priority — implement only after all Tier 1–5 items are complete.


Requirements

  • Create src/NetEvolve.Pulse.AspNetCore/Grpc/PulseGrpcStreamService.cs:
    • �bstract class PulseGrpcStreamService<TQuery, TResponse> that writes to IServerStreamWriter by iterating IMediator.StreamQueryAsync.
    • Concrete subclasses define Protobuf mapping.
  • Add MapStreamQueryGrpc<TQuery, TResponse>(this IEndpointRouteBuilder) extension method.
  • Unit tests for service and extension method.

Acceptance Criteria

  • Service writes all stream items to IServerStreamWriter.
  • Client cancellation stops the stream.
  • MapStreamQueryGrpc() registers the gRPC service correctly.
  • Unit tests pass.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:featureIndicates a new feature or enhancement to be added.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions