Event-driven architecture is a methodology used for designing and implementing applications where events transmit among decoupled software components and services.
In order to make the connections between the different events that do not appear to be clear, the event-driven SOA allows business users to monitor and analyze the events. SOA is capable of creating high-level business events from many low-level system events. Events are created by filtering real-time data with the details such as dependencies or casual relationships found by connecting other events.
An event-driven architecture is composed of Event Producers are the source of the event and it will know that the event has occurred and Event Consumers are the entity that needs to know the event has occurred.
Event consumers typically subscribe to an intermediary event manager, whereas event producers publish to this manager.
The event manager receives an event form the event producer and forwards that event to all the event consumers that are registered.
The manager can also store the event and try to forward that event later, if the event consumer is unavailable. This event transmission method is known as store and forward in message-based systems.
This event-driven is organized around the concept of decoupled relationships between event producers and event consumers. An event consumer is only concerned that it will be invoked when the event has occurred, rather than caring where and why an event occurs. Enabling large number of creators and consumers to exchange status and response in real time is a good advantage of event-driven architecture.