NServiceBus - what is the point of IHandleMessages<T> vs IMessageHandler<T>?

.net, nservicebus

Solution

The reason is that it follows the newer naming convention for interfaces in NServiceBus, where the name states explicitly what it does: IHandleMessages, IPersistSagas, IContainSagaData, etc. The letter 'i' at the beginning is the interface speaking of itself.

When taken together, these result in more readable code bases, if only slightly, but bring the language of the framework closer to that of the developer, thus decreasing the learning curve and friction of usage.

Problem

What is the point of `IHandleMessages<T>` vs `IMessageHandler<T>` in NServiceBus 2.0? One interface derives from the other and does not appear to add any new methods or new constraints on T. It is possible that one is a marker interface but there is no evidence for this in the comments.

Original source