I've heard that if a RabbitMQ connection goes down, Micronaut provides auto recovery and I was wondering what other features it provides. So, if I write a standard publisher class like:
import io.micronaut.rabbitmq.annotation.Binding;
import io.micronaut.rabbitmq.annotation.RabbitClient;
@RabbitClient
public interface ProductClient {
@Binding("product")
void send(byte[] data);
}
Are there any guarantees that messages will actually be received and processed by RabbitMQ?
There's a small section here: https://micronaut-projects.github.io/micronaut-rabbitmq/latest/guide/#producerAcknowledge that talks about acknowledgements but it doesn't really go into much detail.
If Micronaut doesn't provide message safety on the publishing side, how would I go about ensuring that messages are sent properly? How would I resend a message that RabbitMQ failed to process?