Rain Ocampo: Modul-01 (PostgreSQL) + Modul-02 (RabbitMQ) nachdokumentiert (liefen produktiv, fehlten im Repo)

This commit is contained in:
Rain Ocampo 2026-08-20 22:24:25 +00:00
parent 20f3b09155
commit b26c4d4be9
2 changed files with 110 additions and 0 deletions

View file

@ -0,0 +1,51 @@
# Modul-01-PostgreSQL — Betriebsdokumentation
> Erstellt: 20.08.2026 (Rain Ocampo) · Status: ✅ In Betrieb (healthy)
## Zweck
Zentrale Datenbank des Trading-Systems. Persistiert Marktdaten (OHLCV), Journal- und
Betriebszustände. Keine Strategie, keine Orders — nur zuverlässige Datenspeicherung.
## Container
| Attribut | Wert |
|----------|------|
| Name | `Modul-01-PostgreSQL` |
| Image | `postgres:16-alpine` (PG 16.13) |
| Port | **55432** (Host) / **5432** (Docker-intern) |
| Netzwerk | `trading-modules` (bridge) |
| IP (intern) | `10.0.13.13` |
| Restart | `unless-stopped` |
| Status | ✅ `healthy` |
## Credentials (Compose Env)
| Variable | Wert (Default) | Zweck |
|----------|---------------|-------|
| `POSTGRES_DB` | `trading` | Standard-Datenbank |
| `POSTGRES_USER` | `trading` | Standard-User |
| `POSTGRES_PASSWORD` | `trading` | aus `.env`-Defaults `${VAR:-default}` |
## Konfiguration
- **Image:** `postgres:16-alpine` (schlank, produktionsreif)
- **PGDATA:** `/var/lib/postgresql/data`
- **Docker-interner Servicename:** `Modul-01-PostgreSQL` (von anderen Modulen so referenziert, keine feste IP)
- **Host-Port:** 55432 (für externen DB-Client / DBA-Tooling, nicht für Modul-Kommunikation)
## Schema
Siehe `modul-03-market-data.md` → Tabelle `public.ohlcv` (Symbol, Timeframe, OHLCV, Timestamps, Provider).
Unique-Constraint `uq_ohlcv_provider_symbol_tf_ts` inkl. Provider für Multi-Broker-Unterstützung.
## Verbraucher (Module, die schreiben/lesen)
- **Modul-03-Market-Data** → schreibt `ohlcv` (Hauptschreiber)
- **Modul-10-Trade-Journal** → Journal-Daten
- Weitere Module lesen OHLCV für Analyse/Backtesting (Modul-11, 12, 13)
## Sicherheit
- Creds nur via Environment Variables / Docker-Secrets (Compose `${VAR:-default}`), nie in Doku-Repos hartkodiert
- Host-Port 55432 nur wenn externer Zugriff nötig — kein unnötig öffentlicher Port
---
```
Geändert von: Rain Ocampo
Datum: 20.08.2026
Grund: Modul-01-Dokumentation nachgetragen (lief bereits produktiv, fehlte in Repo).
```

View file

@ -0,0 +1,59 @@
# Modul-02-RabbitMQ — Betriebsdokumentation
> Erstellt: 20.08.2026 (Rain Ocampo) · Status: ✅ In Betrieb (healthy)
## Zweck
Zentrale Event-Bus / Message-Queue des 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).
```