The event-driven messaging is a design pattern to enable the service consumers, which are interested in events that occur within the periphery of a service provider, to get notifications about these events as and when they occur without resorting to the traditional inefficient polling based mechanism.
Whereas queue / message driven services (e.g. AWS SQS) are coupled with their consumers.
Apart from these problems, such a technique also introduces latency as the interval with which the service consumer performs the polling is fixed and, therefore, it would only fetch the event data at that time and not when the event actually occurred.
In order to tackle this problem, the event-driven messaging design pattern suggests a publisher-subscriber communication mechanism that ensures timely notification of event related data to the service consumer,[4] thereby eliminating the inefficiencies linked with the traditional polling based communication mechanism.
[5] This communication mechanism shares its roots with the Observer pattern applied traditionally within the object-oriented world.