rabbitmq-stream
rabbitmq-stream copied to clipboard
Subscripting to replicas other than the main might cause it to fail.
Problem
In some scenarios, a Consumer fails to startup because it receives a {:error, :stream_not_available}
when calling RabbitMQStream.Connection.subscribe/5
.
Initially it seemed that this happened when although the tcp/ssl
connection would already be open, the authentication process was not yet complete. But later It I found out that it actually happened when attempting to connect to a replica other than the Main for that stream.
Solution
Implement an abstraction on top of RabbitMQStream.Connection that auto-discovers all the nodes and routes each requests based on the defined metadata
Testing
Add replication to the services setup and create related tests.
Reopening this issue as it is still present.
Updated the description describing the mapped issue after the root cause was found.