trading-system-docs/notes/trading/system-docs/modul-02-rabbitmq.md

2.5 KiB

type _organized
Trading-Modul-System true

Modul-02-RabbitMQ — Betriebsdokumentation

Erstellt: 20.08.2026 (Rain Ocampo) · Status: In Betrieb (healthy)

Zweck

Zentrale Event-Bus / Message-Queue des Modul-Trading-Systems. Verteilte Kommunikation zwischen den Modulen über Topics/Exchanges. Keine Strategie, keine Orders — nur zuverlässige Nachrichtenvermittlung.

Container

Attribut Wert
Name Modul-02-RabbitMQ
Image rabbitmq:3-management (RMQ 3.13.7)
Ports 55672 (AMQP, Host) / 15672 (Management-UI, Host) — beide nur intern
Netzwerk trading-modules (bridge)
IP (intern) 10.0.13.7
Restart unless-stopped
Status healthy

Credentials (Compose Env)

Variable Wert (Default) Zweck
RABBITMQ_DEFAULT_VHOST trading Default-vhost trading (wichtig!)
RABBITMQ_DEFAULT_USER trading Default-User
RABBITMQ_DEFAULT_PASS trading aus .env-Defaults ${VAR:-default}

Konfiguration

  • Image: rabbitmq:3-management (inkl. Management-Plugin für UI/Diagnose)
  • Docker-interner Servicename: Modul-02-RabbitMQ (von anderen Modulen so referenziert, keine feste IP)
  • AMQP-Port intern: 5672 (Host: 55672)
  • Management-Port intern: 15672 (Host: 15672)
  • vhost trading — alle Trading-Module nutzen diesen Vhost

Exchanges & Routing-Keys

Siehe modul-03-market-data.md → Exchange market.data (topic, durable).

Routing-Key Event-Typ Wann
market.data.ready MARKET_DATA_READY Batch/Import — EIN Event pro Batch
market.data.candle.closed MARKET_CANDLE_CLOSED Live — pro abgeschlossener Kerze
  • Eventschema v1.0: event_id, event_type, event_version, timestamp, symbol, asset_class, timeframe, provider + payload.

Verbraucher/Produzenten

  • Produzent: Modul-03-Market-Data (publiziert market.data.*)
  • Konsumenten: Modul-04 ff. (Market Regime, Strategy Engine, Signal Ranking, …) — siehe jeweilige Modul-Doku
  • Consumer-Regel: queue_delete beim Start gegen Zombies (alte, hängende Consumer-Queues entfernen)

Sicherheit

  • Creds nur via Environment Variables / Docker-Secrets (Compose ${VAR:-default}), nie in Doku-Repos hartkodiert
  • Ports 55672/15672 nur intern — kein unnötig öffentlicher Port

Geändert von: Rain Ocampo
Datum: 20.08.2026
Grund: Modul-02-Dokumentation nachgetragen (lief bereits produktiv, fehlte in Repo).