I am investigating whether to use nServicebus or a custom solution for a new project. Basically I want to create a "messaging layer" that will receive messages from various sources, process these messages and then send them off to some destination. In most cases I retrieve and send the messages. In a few cases, messages arrive via a web service. I want to know whether nServicebus is a good fit for this type of project or should I just create some generic interfaces and use a database as a queue for my messages.
One example is where I need to retrieve files via FTP, decrypt these files and then process them via a COM call (ActiveX dll). This process could fail at various points. I would like to be able to specify when a message must be re-retrieved, reprocessed or resent.