I am creating a new ASP MVC ordering application on Amazon Cloud (AWS) with a persistence level in my on-premises data center. I will use the CQRS pattern. The goal of the project is high availability with Queue (s) to store and forward records (commands / events) that can be collected and processed asynchronously in my local data center. Then, if the WAN or my on-premises data center fails, my cloud-based MVC application can still take orders and simply queue them until processing resumes.
My first thought was to use AWS SQS for the queue and create my own consumer / dispatcher / queue processor in my own C # application to handle incoming messages / events.
MVC (@Amazon) -> Event / POCO -> SQS -> QueueReader (@my datacenter) -> DB
Then I found NServiceBus. NSB seems to handle a lot of details: message processing, retries, error handling, etc. I don't like reinventing the wheel, and NServiceBus seems like a full-featured and mature product that would be ideal for me.
But with further research, it does NOT look like NServiceBus is really intended for use in a WAN in physically separated environments (Cloud to my Datacenter). Google and SO do not actually paint a good picture of using NServiceBus through the WAN, as I need.
Can I do it?
MVC (@Amazon) -> Event / POCO -> NServiceBus via WAN -> NServiceBus Handler -> DB
How can I use NServiceBus through the WAN? Or is there a better solution for queuing and message processing between Amazon and my local data center?
source share