bentools/safe-sync-transport

Symfony Messenger safe synchronous transport.

Installs: 4

Dependents: 0

Suggesters: 0

Security: 0

Stars: 5

Watchers: 3

Forks: 1

Open Issues: 1

pkg:composer/bentools/safe-sync-transport

dev-main 2023-02-01 14:35 UTC

This package is not auto-updated.

Last update: 2025-09-28 01:54:48 UTC


README

This package offers Symfony Messenger's sync:// transport a different approach:

  • Messages are handled synchronously, like in sync:// transport ✅

But:

  • In case of failure (handler produces an exception), messages can be retried (whereas original sync:// throws the exception and crashes) 👉
  • When max retries have been reached, messages can fall into the failure_transport ☝️

This way, safe-sync:// can be used as a drop-in replacement of any asynchronous transport, following the same logic (except messages are now processed synchronously). 👍

Whenever an exception is thrown during message handling, it is caught by the transport, which applies the rules you defined within your messenger.yaml.

Installation

composer require bentools/safe-sync-transport

Usage

Example:

# config/packages/messenger.yaml
framework:
  messenger:
    failure_transport: failed
    transports:
      sync:
        dsn: 'safe-sync://'
        retry_strategy:
          max_retries: 3
          delay: 100
          multiplier: 2
      failed:
        dsn: 'doctrine://default'
    
    routing:
      App\DummyMessage: sync

Tests

composer test

License

MIT.