Skip to content

Tasks for the client version 2 #260

@Gsantomaggio

Description

@Gsantomaggio

Is your feature request related to a problem? Please describe.

Based on the experience we gained with the DotNet stream client, I'd like to report some best practices we should adopt on version 2 of this client.

Describe the solution you'd like

Tests do:

Edge cases to handle:

  • Single Active Consumer: When a consumer is not active anymore, it should stop parsing chunks even if there are messages pending
  • Consumer: As soon the consumer requests to close, it should stop delivering the messages
  • Producer and Consumer: The TCP client could receive data even if the producer and/or consumer are closed. So the client has to ignore that data and maybe log them like .NET
  • Metadata update: The client receives the metadata updated when a stream is deleted or a replica removed. Even if the client is connected to another node. The server will drop all the consumers and producers. So the client needs to reconnect if the stream exists or close the connection if it does not exist and it is possible to release the connection.
  • Auto-Reconnect: StreamDoesNotExist is different from StreamNotAvailable the second one could be a temporary situation so the client has to re-try again

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions