I am currently experimenting with implementing the micro service architecture on a REST service that I will be developing. The REST service will communicate with a third party SOAP service and also another component that I will be creating to perform additional business rules validation. I plan to split the application into three distinct components: the Web API to which clients will send requests, a windows service that will call a third party SOAP service and a windows service to perform business rules validation. I am planning on using a combination of the actor model (Akka.net) along with a message bus (NServicebus or RabbitMQ + Mass Transit).
From what i understand, messaging is meant for fire and forget commands, so it cannot be used by the Web API project as the clients will be expecting a response from the call to the API and I am not sure how I would await receiving the message from the Bus/Queue in the client request to the Web API as there would need to be away for the Web API to listen for an event from the bus in the request.
My question is, Am I correct in my understanding of how messaging queues operate? And, I will have to use an Akka.net based micro service to accept calls from the Web API and return the response to the API?