We are planning to implement NServicebus pub sub model at work. One point of contention is whether the subscriber/message handler should do domain work or if it should delegate the work to one of the relevant web services that currently does the work. The argument for latter is that we can scale the subscribers and webservices independently. What is the recommended practice here?
Share
If all your message handlers are doing is calling a web service, you’re introducing another network round-trip of latency and decreasing the reliability of the overall solution (due to the potential for timeouts).
My recommendation would be to take your already compiled web services and deploy them as DLLs to the same process are your message handlers, and have the handlers call them in-process. That way you get the reuse without any of the above drawbacks.
There isn’t really any advantage to scaling these independently of each other.