I am in the planning phase of moving a c#.net monolithic application to node.js. I would like to implement the microservices architecture, event-driven, for this app using seneca.js and docker to separate each microservice into its own container hosted on aws elastic beanstalk. From what I have read and per recommendations this seems the way to go so far.
Here is where I am confused, in reviewing the seneca.js docs, I am not seeing how out-of-process communication is occurring.
In particular, if I want to allow multiple clients to subscribe to the same event should I use rabbitmq with seneca.js as there are times where several microservices have to perform actions for a particular event? In going this route, how would I handle a scenario where one of the subscribers fails and needs to run again? Seems like this event would need to be run again for this microservice only and not the others.
Also, in using seneca.js, how do I allow for exposing a rest api for each microservice to allow clients to gain access to its internal database and data using this approach?
Please let me know if I am incorrect in any aspects of this.