We are at a crossroad where we are building a system that should run on a single machine and possibly scale to N machines in a network. We are looking heavily into the Agent pattern and took a deeper look into the Microsoft CCR but don't see clearly how it could be implemented in a network environment (in a single-machine environment, it is incredible).
We have also looked into nServiceBus and MassTransit, but would like to avoid using queues and especially MSMQ as we don't want to have to scale domain boxes and won't be able to use the technology on Azure or AWS easily.
What we are looking for is having a possible array of machines that do the delegation of tasks where we can dynamically allocate (Azure scaling using worker roles) more processors as needed. But this could also be installed in a client environment using say a windows service type of container but understand that in a client environment we won't have auto scalling automatically and this will have to be handled by something and this problem is not relevant to the question.
Here is an interesting approach but I'm wondering if anyone else has dealt with this problem in a more elegant way without using MSMQ.