[meta] Make async message handling work

Created on 13 September 2023, about 1 year ago

This meta-issue explains the goal of the project and lists the issues that need to be resolved.

Overall Plan

To implement the Symfony messenger component in Drupal, enabling Drupal developers to leverage asynchronous handling of jobs via an independent worker PHP process.

To release a version of this module that provides

  • an example message and message handler: for sending emails
  • a default transport (Drupal database queue) with default retry strategy
  • a routing to this transport is set for an example message
  • a worker to consume messages (called manually or with a tool like supervisord)

See also the Drupal Slack channel: #symfony-messenger

Individual issues

See the child issues linked on the right.

In a more structured listing, these are the issues:

prerequisites

to do

  • implement a drush command to start the worker
  • implement autodiscovery of message handlers using #[AsMessageHandler] annotation
  • implement a transport with retry strategies
  • implement routing to transports using RoutableMessageBus
  • disable standard Drupal cron queue handling of the messenger queue
  • limit the worker runtime by time/number of items/memory/etc.
  • implement various services needed by the ConsumeDrupalMessagesCommand: receiverLocator, busLocator, rateLimiterLocator, retryStrategyLocator
  • implement an email sending message + handler (possibly integrated with Drupal Symfony Mailer

nice to have

  • support different transports other than default database
  • simple command to start worker, independent of module location
  • gui to define transport(s) with retry strategy
  • gui to define message routing: which message goes to which transport
  • Use multiple transports
  • Use multiple busses
  • Use multiple queues
🌱 Plan
Status

Active

Version

1.0

Component

Miscellaneous

Created by

🇳🇱Netherlands finne Amsterdam

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.71.5 2024