Messaging

Messaging queues or "messaging" in short are tasks that run constantly in the background of the application as standalone processes.

For example, when a product or any of its associated data changes, a message containing the product's ID is dispatched to the message bus and sent to a particular transport. One or many workers which process that transport pick up the message and send it to a handler that can handle the message.

The handler in this case loads up the product, normalizes its data and sends it to Elasticsearch. A worker is a single task, or one of the separate processes that process one or many different transports.

A worker can be run in multiple instances in parallel when it's managed by another worker. This is what we call a "multi-worker". It's used on transports such as products or media entries, where 10s of thousands or 100s of thousands of messages should be frequently consumed, as fast as possible.

This, of course, requires adequate system resources.

The storage holding the messages for each of one these transports is usually Redis.

Most workers run as scheduled jobs, as configured in the application.

Messaging

To purge individual transports, select them and click on "Purge selected transports".

Warning

Do not blindly purge unless you have a good reason to do so. Purged messages will be permanently deleted.

Factory transports:

Transport Description
messaging.transport.email All application emails.
messaging.transport.media.entry Downloads, resizes, converts media from local or external sources.
messaging.transport.sync Sync (data import / export)
messaging.transport.product.category.index Re-indexes product categories and category tree to Elasticsearch.
messaging.transport.product.index.item Re-indexes one or many products to Elasticsearch.
messaging.transport.product.index Re-index requests for one or many products.
messaging.transport.stock.item.update Aggregates source items of a product and updates the stock item.
messaging.transport.product.bulk.update Processes product bulk update messages.
messaging.transport.product.clear.cache Clears the cache for one or many products after refreshing the Elasticsearch index.
messaging.transport.product.async.sync Handles product sync messages (product import).