Skip to content

Add an a more reliable way to know a stream was started successfully #206

@llucax

Description

@llucax

What's needed?

GrpcStreamBroadcaster provides events to know what's going on with the stream. The StreamStarted even is emitted as soon as the gRPC method is called, but this call is actually sync and doesn't provide any information on if the call was successful or not. For example if the underlying gRPC channel was never used before, the sync call could initiate the connection to the server in the background, and there will be no indication about failure until we start to iterate asynchronously over the stream.

This can be misleading, and cause downstream user to take actions that should only be taken once a successful connection to the server and stream request arrives.

Proposed solution

We already tried using initial_metadata() but that didn't work. The call just stalled and streaming never started, so we had to revert it. The solution is still unknown and must be investigated.

Additional context

Previous attempt:

Metadata

Metadata

Assignees

No one assigned

    Labels

    part:codeAffects the code in generaltype:enhancementNew feature or enhancement visitble to users

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions