I am new to rabbitMq and Spring AMQP . I am building a new project from scratch . Here for one of the components we are using rabbit-Mq as message broker .
In this project ,primarily all the development has been happening in Java . We are using Spring in general for some of the components .
Now , rabbit-mq though written in Erlang does provide a clean java Api. There is also spring amqp which provides a nice interface to support loose coupling (through AMQPTemplate etc.) .
One advantage which I thought of using SpringAMQP is that because of above mentioned loose coupling , tomorrow if we have to use any other implementation of AMQP than rabbit-Mq(spring-rabbit ) I don't have to change my code . But as I see ,today the implementation is for rabbit-Mq and barring extraordinary circumstances , I don't see anything happening here. We should be using rabbit-Mq for near foreseeable future and also not sure if there is any other message broker implementation thought at spring amqp side other than rabbitMq.
The disadvantage I think is that I am well away off understanding the actual client API RabbitMq provides due to the abstraction Spring AMQP gives(unless I decide to dig really deep) .
In such a case , is there any other advantage SPRING AMQP provides over traditional rabbitMq Java API ?
Thanks
this isn't a question that can be answered by someone else. you and your team have to decide what is best for your team.
if your team is already using spring and is comfortable with it, use the spring amqp provider.
if you don't want to be tied to spring anymore than you are, using the rabbitmq library directly.
pick one and stick with it. you'll become productive with it and it won't matter that you didn't choose the other one.