[ ] 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
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:
StreamDoesNotExist
is different fromStreamNotAvailable
the second one could be a temporary situation so the client has to re-try againDescribe alternatives you've considered
No response
Additional context
No response