I'm learning the messaging system and got confused by those terminology.
All the messaging system below provides loose coupling between services with different sets of features.
queue
– FIFO, pulling mechanism, 1 consumer each queue but any number of producers?
message bus
– pub/sub model, any number of consumers with any number of producers processing messages? Is Azure Service Bus
an implementation of message bus
?
event bus
– pub/sub model, any number of consumers with any number of producers processing events?
Do people use message bus
and event bus
interchangeably as far as terminology goes?
What are the difference between events and messages? Are those just synonyms in this context?
event hub
– pub/sub model, partition, replay, consumers can store events in external storage or close to real-time data analysis. What exactly is event hub?
event grid
– it can be used as a downstream service of event hub. What does it exactly do that event hub
doesn't do?
Can someone provide some historical context as how each technology evolve to another each tied with some practical use cases?
I've found message bus vs. message queue helpful
Best Answer
Even thou all these services deal with the transfer of data from source to target and might seem similar falling under the umbrella messaging services they do differ in their intent.
High-level definition:
Difference between Event Grids & Event Hubs
Difference between Event Hubs & Service Bus
To the external publisher or the receiver Service Bus and Event Hubs can look very similar and this is what makes it difficult to understand the differences between the two and when to use what.
Use this loose general rule of thumb.
SOMETHING HAS HAPPENED – Even Hubs
DO SOMETHING or GIVE ME SOMETHING – Service Bus
As @Louie Almeda stated you may find this link to the official Azure documentation useful.