I hope to use NServiceBus in a project for the very first time (having read up about it on the weekend) but now I am thinking maybe it is not required for this project.
I have the following requirements:
I record network data (bandwidth, cpu utilization etc) every minute and record it in a table. Client (via silverlight) can then run queries to see what the data looks like over a period of time. Each database will be local on the machine.
I could use NServiceBus so that data is written to a queue first.
The advantage in my case of using NServiceBus is if the database goes down, at least I will not lose any data as it will be in the queue. However, after talking to the business analysts it is not really critical data so it is not much of an issue. Also since I am writing to a single table I do not foresee deadlocking issues.
I would love to work with NServiceBus but at this stage I don’t think we need it.
Are there any other benefits of using NServiceBus on my project?
It seems like NServiceBus is overkill for this project. Transporting the network data with a queue could be a good idea, but in that case just use MSMQ directly (NServiceBus uses MSMQ for transport). Even so, adding messaging to an application is not a trivial task and you need to justify it first by performance and availability metrics. Where NServiceBus really shines is when you want to do pub/sub or use a saga. This comes into play when you have a set of autonomous systems which need to communicate using messaging. When you have just a single system it is usually overkill.