> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# laravel/symfony-on-cloud — Symfony-apps draaien op Laravel Cloud

> Verkenning van een nieuwe officiële Laravel-repository. We bespreken de officiële Symfony-bundle waarmee je de managed queues van Laravel Cloud kunt gebruiken via Symfony Messenger.

<Info>
  Dit artikel is een eerste verkenning per juni 2026. `laravel/symfony-on-cloud` is een repository in ontwikkeling; er zullen nog functies worden toegevoegd.
</Info>

## Wat is laravel/symfony-on-cloud

[laravel/symfony-on-cloud](https://github.com/laravel/symfony-on-cloud) is een officiële Symfony-bundle die **de mogelijkheden van Laravel Cloud naar Symfony-applicaties brengt**. Het is een zeer nieuwe repository, gepubliceerd op 27 juni 2026.

```mermaid theme={null}
flowchart LR
    A["Symfony-app"] --> B["laravel/symfony-on-cloud<br>bundle"]
    B --> C["Laravel Cloud<br>managed queue"]
    C --> D["AWS SQS"]
    C --> E["Cloud-dashboard<br>metrics tonen"]
```

Laravel Cloud was tot nu toe een platform exclusief voor Laravel-applicaties, maar dankzij deze package kunnen **ook Symfony-ontwikkelaars gebruikmaken van de infrastructuur van Laravel Cloud (zoals managed queues)**.

De eerste functie is een **managed queue via Symfony Messenger**. In de README staat "more Laravel Cloud capabilities will follow", dus er komen naast queues nog meer functies aan.

## Installatie

```bash theme={null}
composer require laravel/symfony-on-cloud
```

Registreer vervolgens de bundle in `config/bundles.php` (er is nog geen Symfony Flex-recipe, dus je voegt hem handmatig toe).

```php theme={null}
return [
    // ...
    Laravel\Cloud\Symfony\LaravelCloudBundle::class => ['all' => true],
];
```

## Managed queues

### Basisconfiguratie

De bundle levert een kant-en-klare transport met de naam `cloud`. In een Laravel Cloud-omgeving wordt de verbindingsconfiguratie automatisch geïnjecteerd, dus je hoeft geen DSN handmatig in te stellen.

```yaml theme={null}
# config/packages/messenger.yaml
framework:
    messenger:
        routing:
            '*': cloud
```

<Tip>
  Ook het migreren van een bestaande Symfony Messenger-app naar Laravel Cloud is eenvoudig. Omdat Cloud automatisch `MESSENGER_TRANSPORT_DSN=laravel-cloud://managed-queue` injecteert, werken apps die de klassieke `async`-transport (`dsn: '%env(MESSENGER_TRANSPORT_DSN)%'`) gebruiken zonder codewijzigingen.
</Tip>

### Meerdere queues

In een Laravel Cloud-omgeving kun je meerdere managed queues aanmaken (bijvoorbeeld `default` en `critical`). Elke queue draait met een eigen SQS-queue en workers. Met `CloudQueueStamp` dispatch je naar een specifieke queue.

```php theme={null}
use Laravel\Cloud\Symfony\Queue\Messenger\CloudQueueStamp;
use Symfony\Component\Messenger\MessageBusInterface;

$bus->dispatch(new ProcessReport($report), [new CloudQueueStamp('critical')]);
```

Dispatch je zonder stamp, dan gaat het bericht naar de default queue.

### FIFO-queues

Managed queues waarvan de naam eindigt op `.fifo` worden behandeld als [FIFO-queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html). Berichten worden in strikte volgorde afgeleverd en duplicaten worden geëlimineerd.

```php theme={null}
use Laravel\Cloud\Symfony\Queue\Messenger\CloudQueueStamp;

$bus->dispatch(new ProcessOrder($order), [new CloudQueueStamp('orders.fifo')]);
```

Standaard wordt de queuenaam als groep-ID gebruikt en een unieke waarde als deduplicatie-ID. Heb je fijnmazigere controle nodig, voeg dan een `CloudFifoStamp` toe.

```php theme={null}
use Laravel\Cloud\Symfony\Queue\Messenger\CloudFifoStamp;
use Laravel\Cloud\Symfony\Queue\Messenger\CloudQueueStamp;

$bus->dispatch(new ProcessOrder($order), [
    new CloudQueueStamp('orders.fifo'),
    new CloudFifoStamp(
        messageGroupId: 'customer-'.$order->customerId,
        messageDeduplicationId: 'order-'.$order->id,
    ),
]);
```

### Fair queues

[SQS fair queues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-fair-queues.html) zorgen ervoor dat één tenant die een grote hoeveelheid jobs instuurt de andere tenants niet verdringt. Door in een standaardqueue een message-group-ID toe te kennen, verdeelt SQS de verwerkingscapaciteit eerlijk over de tenants.

```php theme={null}
use Laravel\Cloud\Symfony\Queue\Messenger\CloudMessageGroupStamp;
use Laravel\Cloud\Symfony\Queue\Messenger\CloudQueueStamp;

$bus->dispatch(new ProcessOrder($order), [
    new CloudQueueStamp('orders'),
    new CloudMessageGroupStamp('customer-'.$order->customerId),
]);
```

<Info>
  `CloudMessageGroupStamp` is **uitsluitend voor standaardqueues** en kan niet worden gebruikt met FIFO-queues. Voor groepsaanduiding in FIFO-queues gebruik je `CloudFifoStamp`.
</Info>

### Vertraging

Met een `DelayStamp` kun je een verzendvertraging instellen voor standaardqueues. Vanwege de SQS-specificatie geldt echter een limiet van **maximaal 15 minuten**. Bij meer dan 15 minuten treedt een fout op (het wordt niet stilzwijgend na 15 minuten uitgevoerd).

FIFO-queues ondersteunen geen vertraging, dus daar levert een `DelayStamp` zelf al een fout op.

### Retries

Wanneer een handler faalt, geeft de bundle het bericht terug aan SQS en wordt het opnieuw afgeleverd via de visibility timeout. Je kunt niet tot de verzendlimiet (15 minuten) maar tot het maximum van de SQS-visibility-timeout (**12 uur**) wachten.

Voor de retryconfiguratie gebruik je de standaard `retry_strategy` van Symfony Messenger.

```yaml theme={null}
# config/packages/messenger.yaml
framework:
    messenger:
        transports:
            cloud:
                retry_strategy:
                    max_retries: 3    # 3 retries (in totaal 4 uitvoeringen)
                    delay: 1000       # Eerste backoff (milliseconden)
                    multiplier: 2     # Backoff-vermenigvuldiger
                    max_delay: 0      # Geen bovengrens (de 12-uurslimiet van SQS geldt)
```

Excepties die `UnrecoverableExceptionInterface` implementeren worden zonder retry direct als mislukt geregistreerd.

## Lokale ontwikkeling

De `cloud`-transport kun je in je app overschrijven. Gebruik je lokaal `sync://`, dan worden jobs direct synchroon uitgevoerd.

```yaml theme={null}
# config/packages/messenger.yaml
when@dev:
    framework:
        messenger:
            transports:
                cloud: 'sync://'
```

Om de functionaliteit volledig uit te schakelen, stel je `laravel_cloud.queue.enabled: false` in.

## Samenvatting

`laravel/symfony-on-cloud` is een officiële bundle die de infrastructuur van Laravel Cloud ook voor Symfony-apps beschikbaar maakt. Als eerste is de **managed queue** geïmplementeerd, met praktische functies zoals integratie met Symfony Messenger, meerdere queues, FIFO-/fair queues en retryconfiguratie.

| Stamp                    | Toepassing                                         |
| ------------------------ | -------------------------------------------------- |
| `CloudQueueStamp`        | Dispatchen naar een specifieke queue               |
| `CloudFifoStamp`         | Volgorde- en deduplicatiecontrole voor FIFO-queues |
| `CloudMessageGroupStamp` | Eerlijke verdeling in standaardqueues (tenant-key) |

Volgens de officiële README worden er in de toekomst meer Laravel Cloud-functies naast queues toegevoegd. Naarmate meer Symfony-apps op Laravel Cloud draaien, kan dit een zeer waardevolle package worden.

## Gerelateerde links

<CardGroup cols={2}>
  <Card title="laravel/symfony-on-cloud" icon="github" href="https://github.com/laravel/symfony-on-cloud">
    Officiële repository en README
  </Card>

  <Card title="Laravel Cloud" icon="cloud" href="https://laravel.com/cloud">
    Officiële site van Laravel Cloud
  </Card>

  <Card title="Symfony Messenger" icon="envelope" href="https://symfony.com/doc/current/messenger.html">
    Officiële documentatie van Symfony Messenger
  </Card>

  <Card title="Laravel Cloud-documentatie" icon="book" href="https://cloud.laravel.com/docs/intro">
    Gedetailleerde documentatie van Laravel Cloud
  </Card>
</CardGroup>


## Related topics

- [Cloud Sessions](/nl/packages/laravel-copilot-sdk/cloud-sessions.md)
- [Laravel Cloud Hibernation (automatische slaapstand)](/nl/blog/laravel-cloud-hibernation.md)
- [Laravel-updates van juni 2026](/nl/blog/changelog/202606.md)
- [Laravel Cloud - GitHub Copilot SDK voor Laravel](/nl/packages/laravel-copilot-sdk/laravel-cloud.md)
- [Laravel Cloud — het complete beeld van de PaaS speciaal voor Laravel](/nl/blog/laravel-cloud.md)
