framework:
    messenger:
        # Uncomment this (and the failed transport below) to send failed messages to this transport for later handling.
        failure_transport: failed

        transports:
            # https://symfony.com/doc/current/messenger.html#transport-configuration
            async:
                dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
                retry_strategy:
                    max_retries: 3
                    delay: 1000
                    multiplier: 2
                    max_delay: 0
                options:
                    auto_setup: true
            failed:
                dsn: 'doctrine://default?queue_name=failed'
                options:
                    auto_setup: true
            sync: 'sync://'

        routing:
            Basango\SharedKernel\Application\Messaging\AsyncMessage: async
            Symfony\Component\Mailer\Messenger\SendEmailMessage: sync

        default_bus: command.bus
        buses:
            command.bus: ~
            query.bus: ~
            message.bus: ~

when@test:
    framework:
        messenger:
            transports:
                # replace with your transport name here (e.g., my_transport: 'in-memory://')
                # For more Messenger testing tools, see https://github.com/zenstruck/messenger-test
                async: 'in-memory://'