Jobs und Ereignisse versenden
Wähle Messaging nach benötigter Semantik, nicht nach einem vorhandenen RabbitMQ-Container.
| Szenario | Capability | Flag |
|---|---|---|
| Ein Worker je E-Mail-Job | messaging.queue/v1 |
--queue |
| Mehrere Subscriber je Änderung | messaging.pubsub/v1 |
--pubsub |
| Geordnete Historie mit Replay | messaging.stream/v1 |
--stream |
Mit baha und konfiguriertem Runtime-Target:
baha app new mail-worker --stack go --queue
cd mail-worker
baha plan
baha up -e dev
baha app env --format json
Das Scaffold bereitet AMQP vor und deklariert AMQP_URL/RABBITMQ_CA_FILE. Veröffentlichung, Verarbeitung, Acknowledgements und Retries implementierst du selbst.
Mit bereits geöffnetem amqp091-go-Channel:
queue, err := channel.QueueDeclare("outgoing-mail", true, false, false, false, nil)
Vor Veröffentlichung nach queue.Name den Fehler prüfen. Durable Queue allein garantiert keine Zustellung; Persistent Messages, Publisher Confirms und Consumer Acknowledgements müssen zur Fachsemantik passen.
Weitere Scaffolds aus dem übergeordneten Verzeichnis sind baha app new event-feed --stack go --pubsub und baha app new audit-events --stack go --stream. Sie erzeugen keine vollständige Subscriber-/Replay-Implementierung. Jede deployte Application mit baha doctor prüfen.
Weitere technische Beispiele
baha app new event-feed --stack go --pubsub
baha app new audit-events --stack go --stream