framework:
    messenger:
        transports:
            # Transport du scheduler — traité en synchrone dans le worker scheduler_main
            scheduler_main:
                dsn: 'scheduler://main'

            # Transport async Redis pour les messages lourds (ingestion)
            async:
                dsn: '%env(REDIS_URL)%'
                options:
                    stream: rs971_async
                retry_strategy:
                    max_retries: 3
                    delay: 60000      # 1 min entre chaque retry
                    multiplier: 2

        routing:
            # L'ingestion planifiée tourne dans le worker async (pas dans le worker scheduler)
            App\Message\IngestionScheduleMessage: async
