We have seen how to setup NServiceBus but we have not told anything about what NServiceBus in the end is.
The phone call analogy
| || |
in both cases we have something really similar to what a typical “client to server” communication is:
- communication is initiated by the client;
- relies on a live and continuous connection;
- retries, handling of failures, are responsibility of the client;
- communication must be synchronous;
The express courier analogy
In this case we have introduced a third actor, the courier, in order to:
- Have a reliable delivery;
- Let someone specialized in the delivery process handle the delivery process;
- avoid putting in our hand all the details of the retry mechanism;
- communicate asynchronously;
The service bus
In the end NServiceBus perfectly impersonate the delivery process that an express courier does. Simple, reliable, asynchronous.