I'm actually a fan of Udi's approach and isolating consumers / sagas into
individual endpoints. It wouldn't be too hard to manage if using something
like Topshelf that can spool up an appdomain for each folder under a
/Services folder where an assembly implements something like IBootStrapper.
I had plans to incorporate a hosting option that uses Topshelf for this
reason.

By having all your messages in separate endpoints they will no longer
compete with each other for things like this and will typically perform
pretty well on one thread. Also when a subscriber goes down, it doesn't
affect the SLA of other things trying to send messages to other subscribers
unrelated to the one that went down. One message handler that takes 30
seconds doesn't affect another that is much faster and receives more
messages. It also allows you to scale individual components that need to
scale, not the entire thing just because a couple don't perform well.

Also once you've deployed this way performance counters could paint a very
interesting picture of what's going on with your business, not just what's
going on with EndpointA that handles 200 types of messages.

-- 
You received this message because you are subscribed to the Google Groups 
"Rhino Tools Dev" group.
To post to this group, send email to rhino-tools-dev@googlegroups.com.
To unsubscribe from this group, send email to 
rhino-tools-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rhino-tools-dev?hl=en.

Reply via email to