C4 - Componentes principales del backend FastAPI
C4Component
title Backend FastAPI - Componentes
Container_Boundary(backend, "FastAPI Backend") {
Component(api, "API Layer", "FastAPI routers", "/binance/*, /risk/*, /analytics/*, /jobs/*, /ops/*")
Component(binance_adapter, "Binance Adapter", "BinanceClient + ingestors", "REST + normalizacion; import de velas (klines).")
Component(risk_controls, "Risk Controls", "Policies + Kill Switch + Alignment Guard", "Bloquea ejecucion fuera de guardrails.")
Component(automation, "Automation Services", "market_sync, news_ingestor, goal_monitor, weekly_report", "Jobs/loops programados.")
Component(ai, "IA/Brainstorm", "brainstorm_* services, training_pipeline", "Uso de OpenAI/LLM.")
Component(bi, "BI & Exports", "BiDatasetExporter", "Genera datasets para Analytics/BI.")
Component(persistence, "ORM Models", "SQLAlchemy models.py", "Persistencia en PostgreSQL.")
}
ContainerDb(db, "PostgreSQL", "SQL", "Data operacional")
System_Ext(binance, "Binance API", "REST")
System_Ext(newsapi, "News Providers", "REST")
Rel(api, binance_adapter, "Cuenta/ordenes/market data")
Rel(api, risk_controls, "Pre-trade checks + guardrails")
Rel(api, automation, "Orquesta jobs/loops via endpoints")
Rel(api, ai, "Dispara brainstorm/backtests")
Rel(api, persistence, "CRUD/Queries", "SQLAlchemy")
Rel(automation, binance_adapter, "Importa velas + refresco stats")
Rel(automation, newsapi, "Ingesta headlines/sentimiento")
Rel(persistence, db, "ORM", "SQL")
- API Layer: routers para Binance, riesgo, analitica, jobs y ops.
- Binance Adapter: integra REST de Binance y normaliza respuestas; alimenta
candles y endpoints binance/*.
- Risk Controls: politicas (
/risk-policies) + kill-switch + alignment-guard.
- Automation Services: loops/jobs (ej.
market_sync) controlados por *_AUTO_RUN.
- IA/Brainstorm: pipeline LLM (brainstorm, evaluacion, mejoras) y entrenamiento clasico (scikit-learn) usando datos historicos.
- BI/Exports: genera datasets CSV/JSON ubicados en
storage/bi_exports/.
- Persistence: modelos SQLAlchemy (ticks, estrategias, goal_snapshots, market_news, etc.).