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

64 lines
2.5 KiB
Markdown

---
type: Modul
_organized: 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).
```