Symfony 8.2 to Add Transactional Outbox and Claim Check to Messenger
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.
