Download the PHP package aligent/async-events without Composer
On this page you can find all versions of the php package aligent/async-events. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download aligent/async-events
More information about aligent/async-events
Files in aligent/async-events
Package async-events
Short Description An event-driven flexible async events module that allows you to process any event asynchronously.
License MIT
Informations about the package async-events
Magento Asynchronous Events
A framework for reliably handling asynchronous events with Magento.
- Asynchronous: The module uses RabbitMQ (or DB queues) to leverage asynchronous message delivery.
- Flexible: Decoupling events and dispatches provide greater flexibility in message modelling.
- Scalable: Handles back pressure and provides an asynchronous failover model automatically.
Support
Async Events | Magento 2.3.x | >= Magento 2.4.0 <= Magento 2.4.3 | >= Magento 2.4.4 |
---|---|---|---|
2.x | :white_check_mark: | :white_check_mark: | :x: |
3.x | :x: | :x: | :white_check_mark: |
Installation
Usage
Define an asynchronous event
Create a new async_events.xml
under a module's etc/
directory.
Create Subscription
HTTP Subscription
Amazon EventBridge Subscription
Requires the EventBridge Notifier
Dispatch an asynchronous event
Ensure the following consumers are running
Advanced Usage
Refer to the Wiki
Features
Trace
All events are logged at the individual subscription level with a UUID.
All information from the first delivery attempt to the latest attempt is presented as a trace table. The event payload is also available to view for investigation purposes.
Retries
Events are automatically retried with exponential back off. The default retry limit is 5. The maximum backoff is 60 seconds.
The exponential backoff is calculated as min(60, pow($deathCount, 2));
Attempt | Backoff |
---|---|
1 | 1 second |
2 | 4 seconds |
3 | 9 seconds |
4 | 16 seconds |
5 | 25 seconds |
To change the default retry limit visit Admin > Stores > Settings > Configuration > Advanced > System > Async Events and update Maximum Deaths
.
Replays
An event can be replayed independent of its status. This is useful to debug or replay an event when all retries are exhausted.
Replays start a new chain of delivery attempts and will respect the same retry mechanism if they fail again.
Lucene Query Syntax
All events are indexed in Elasticsearch by default. This allows you to search through events including the event payload!
The module supports Lucene Query Syntax to query event data like attributes.
The following attributes are available across all asynchronous events.
The following attributes differ between asynchronous event types.
Examples
Assuming you have the following events configured
You can query all customer events by using a wildcard like event_name: customer.*
which matches the following events
You can query all created events like *.created
which matches the following events
You can further narrow down using the other available attributes such as status or uuid.
The following query returns all customer events which have failed. customer.* AND success: false
You can combine complex lucene queries to fetch event history and then export them via the admin grid as a csv if you wish.
Searching inside event payloads
Searching an event payload depends on what event you are searching on.
For the following example event payload, four properties are indexed as attributes. Therefore, you can query on
data.customer_email
, data.customer_firstname
, data.customer_lastname
and data.increment_id
.
Properties inside array at any level are not searchable.
Search all events where the customer email is [email protected]
data.data.customer_email: [email protected]
Search all events with the order increment id starting with CK
and status success
data.data.increment_id: CK* AND success: true
To turn off asynchronous event indexing visit Admin > Stores > Settings > Configuration > Advanced > System >
Async Events and disable Enable Asynchronous Events Indexing
.