In Dynamics 365, when a plugin is run, it executes based on a pipeline execution model.
Plugins can be triggered by:
- A user action in the Dynamics 365 user interface, such as retrieving a record
- Events triggered by the Organization Service or the WebAPI, such as retrieving a record
Post-Operation events in the pipeline are processed either:
- synchronously – these plugins are are executed immediately and run in a specific order
- asynchronously – these plugins are executed by the Queue Agent and run later by the async service
Other events are processed synchronously.
The event pipeline is as following:
|Event||Stage name||Stage number||Description||Sync/Async|
|Pre-Event||Pre-validation||10||Executes before the main system operation and outside the database transaction.||Sync|
|Pre-Event||Pre-operation||20||Executes before the main system operation and executed within the database transaction.||Sync|
|Platform Core Operation||MainOperation||30||This is the actual platform operation. No plugins registered here.|
|Post-Event||Post-operation||40||Executes after the main operation and within the database transaction (if sync).||Sync and Async|
Plug-ins that execute during the database transaction and pass an exception back to the platform cancel the core operation.
The pipeline is detailed here.