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.
Problem
In some scenarios, a Consumer fails to startup because it receives a
{:error, :stream_not_available}
when callingRabbitMQStream.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.