Description
Description
If we can't connect to RabbitMQ when starting up the connection thread just dies since the initial call to self._connect() is outside the infinite retry loop.
Motivation
We should be able to start the service even if RabbitMQ happens to be unavailable at that moment. See eiffel-community/eiffel-remrem-publish#179 for an elaboration.
TL; DR: A network partition or other unavailability of an external service must never cause this service to end up in an unrecoverable state that requires manual intervention. Errors can either be returned to the caller (where applicable) or a retry loop can block the caller for some time (possibly forever).
Benefits
A more fault tolerant service that requires less operational support.
Possible Drawbacks
If the connection issue is caused by a bad configuration it might take longer to discover.