You can take a look at the Udi Dahan post in business events .
So how are you going to consume such events?
In the Udi Dahan publication, I get the impression that he just has a broker in the process (indeed, Observer ), which notifies all subscribers about the events as they occur. This happens unconditionally, so each subscriber essentially works as his own filter, deciding whether he wants to deal with the event in question.
While the process of creating an event by itself occurs in the process, notification of all subscribers can also occur in the process, if the broker guarantees that the notification occurs asynchronously so that subscribers do not block each other (or the business process that triggered the event).
In many cases, this is likely to be good enough, but in other cases you may need increased scalability or reliability. Such problems can be solved by (transactional) queues, but, obviously, due to the additional complexity. Here, the broker still exists, but instead of notifying subscribers directly, it adds a message representing the event to all subscription queues.
source share