Symfony 8.2 to Add Transactional Outbox and Claim Check to Messenger

New Transport Options Target Transaction Gaps and Oversized Broker Payloads
“PHP.” “Closing the Messaging Gaps.” “Symfony Messenger tackles transaction failures and oversized payloads.” A diagram shows database data moving through secured messaging and an alternate document based route before both reach the message queue.

Starting with Symfony 8.2, Messenger is set to gain two transport options aimed at failure points between application data, message brokers and payload limits. Symfony documented transactional outbox and claim check on 21 September 2026, with contributions from Nicolas Grekas and Yanick Witschi, respectively. Symfony 8.2 remains under development and is scheduled for release in November 2026.

Transactional outbox addresses the gap between committing application data and sending a related message to a broker such as AMQP or Amazon SQS. When the message is dispatched within the database transaction, Symfony can first store it through a Doctrine transport using the same database connection as the application's data changes. A separate relay worker then forwards the stored message to the target broker, while normal consumers continue reading from that broker.

Symfony documents several constraints around that process. The outbox must use a Doctrine transport on the same database connection, message delays are served while messages wait in the outbox, and forwarding failures use the outbox transport's retry strategy and failure transport. Handler failures after forwarding retry directly through the target transport, and the order in which messages leave the outbox is not guaranteed.

Claim check addresses a different messaging constraint. Messages whose encoded body and headers exceed a configured size threshold are stored in a dedicated PSR-6 cache pool, while the broker receives a smaller reference containing an identifier and checksum. Consumers retrieve the original message from that pool and verify it before handling. Symfony says the shared pool must remain reachable by producers and consumers, should not be treated as an ordinary disposable application cache, and must retain claims long enough to cover delays, retries and time spent in a failure transport.

Drupal teams using the Symfony Messenger + Drupal: Realtime Queues and Cron project have a reason to track the additions because the Drupal 11.4 and Drupal 12 line supports Symfony 8. However, available project documentation does not show that the integration currently exposes or has tested Symfony 8.2's outbox or claim check options. The outbox requirement is particularly relevant because Symfony requires a Doctrine transport, while the Drupal integration currently describes its Doctrine database transport as deprecated in favour of its Drupal-native SQL transport.

Reference: New in Symfony 8.2 Messenger Outbox and Claim Check (21 September 2026)

Disclosure: This content is produced with the assistance of AI.

Note: The vision of this web portal is to help promote news and stories around the Drupal community and promote and celebrate the people and organizations in the community. We strive to create and distribute our content based on these content policy. If you see any omission/variation on this please reach out to us at #thedroptimes channel on Drupal Slack and we will try to address the issue as best we can.

Upcoming Events

Latest Opportunities