Working with events and observers is one of the main ways to extend Magento functionality. The events and observers implementation in Magento 2 is based on the publish-subscribe pattern. Using events and observers, you can run your custom code in response to a specific Magento event or even a custom event.
Events are dispatched by modules when certain actions are triggered. In addition to its own events, Magento allows you to create your own events that can be dispatched in your code. When an event is dispatched, it can pass data to any observers configured to watch that event.
To dispatch an event, call the
dispatch function of the event manager class and provide it with the name of the event you want to dispatch along with an array of data you wish to provide to observers.
The following example shows you how to dispatch an event with and without an array of data.