@startuml
title Traefik Path-Based Routing

actor "Nutzer" as user
participant "Cloudflare\nTunnel" as cf
participant "Traefik\n:80" as traefik
participant "Frontend\n:80" as frontend
participant "Backend\n:8000" as backend
participant "Trading\nData Layer\n:8001" as tdl
participant "Trend\nAnalysis\n:8002" as ta
participant "Trade\nOptimizer\n:8004" as to

user -> cf : HTTPS Request
cf -> traefik : HTTP (Tunnel)

traefik -> frontend   : PathPrefix(/) – Prio Standard\n→ React SPA
traefik -> backend    : PathPrefix(/api) – strip /api\n→ FastAPI /health, /notes
traefik -> tdl        : PathPrefix(/data-layer) – strip /data-layer\n→ /health, /collectors/*
traefik -> ta         : PathPrefix(/trend-analysis) – strip /trend-analysis\n→ /api/v1/interpretation, /fundamental/*, /trade-setup, /calendar/*
traefik -> to         : PathPrefix(/trade-optimizer) – strip /trade-optimizer\n→ /api/v1/trade-optimizer/analyze, /library

note over traefik
  data-layer, trend-analysis, trade-optimizer
  haben priority=100 (vor dem catch-all /)
end note

@enduml
