I'm currently reading Enterprise Integration Patterns: Messaging book.
But I've still difficulties to understand patterns and their applications, especially when looking at existing implementations such as NServiceBus, MassTransit and in another fashion RabbitMQ.
http://www.enterpriseintegrationpatterns.com/patterns/messaging/index.html
For example, in the Messaging Channels sections, there are PointToPoint
, PubSub
AND MessageBus
but I don't really get the reasoning behind MessageBus
vs other type of channels.
I'm trying to work on a custom implementation for both work and educational purpose, and while I don't want to get a full featured library, I'd like to it properly.
I could not find any materials on a simple implementation of each patterns (or at least the most common) and connecting them together.
For example, the purpose of the Endpoint
I understand that it can be both a Receiver
or a Sender
so it means it can send(Message)
or receive()
but then, what is the difference with the MessageBus
?
So it means that I can subscribe to an Endpoint
with subscribe(MessageType, Handler)
?
I also don't really see how it connect with Queue systems (such as RabbitMQ or custom SQL implementation).
Does Endpoint exchanges messages through a Queue by Enqueueing / Dequeuing from it? Does this happen in the Channel ?