The event-driven architectural pattern is for highly adaptable, distributed systems. It is used to implement applications that involve transmitting events in a decentralized system. With this pattern, events have publishers and consumers. Using this pattern allows for more efficient development of large distributed systems.
This pattern can be used for web systems, business processes, games, and almost any application you can think of that has events. Events can be button-clicks, inputs via a stream, automated analysis results, in-game conditions, such as collision detection, and so on.
The event-driven architectural pattern comes in two forms—broker and mediator. We will look at both of these pattern forms in the following sections.