# =============================================================================== # DEPENDENCY-GRAPH.yml - Trading Platform # =============================================================================== # # Sistema: SIMCO v4.3.0 + NEXUS v4.0 # Estandar: SIMCO-ESTANDAR-ORCHESTRATION v1.0.0 # Proposito: Grafo de dependencias completo del proyecto # Fecha: 2026-02-06 # Version: 2.0.0 # # Cubre: 15 servicios, 18 backend modules, 11 DB schemas, 6 external APIs # # =============================================================================== metadata: proyecto: trading-platform version: "2.0.0" ultima_actualizacion: "2026-02-06" tipo_proyecto: STANDALONE total_servicios: 15 total_backend_modules: 18 total_db_schemas: 11 total_db_tables: 101 # ───────────────────────────────────────────────────────────────────────────── # DEPENDENCIAS UPSTREAM (de quien depende este proyecto) # ───────────────────────────────────────────────────────────────────────────── upstream: - proyecto: workspace-v2 tipo: orchestration que_hereda: - directivas SIMCO - principios - templates - perfiles de agentes - proyecto: template-saas tipo: patterns que_hereda: - auth patterns - multi-tenancy - api structure - frontend structure # ───────────────────────────────────────────────────────────────────────────── # DEPENDENCIAS DOWNSTREAM (quien depende de este proyecto) # ───────────────────────────────────────────────────────────────────────────── downstream: [] # STANDALONE - no tiene proyectos que dependan de el # ───────────────────────────────────────────────────────────────────────────── # DEPENDENCIAS EXTERNAS (APIs y servicios de terceros) # ───────────────────────────────────────────────────────────────────────────── external: apis: - nombre: Polygon.io tipo: market_data critico: true consumido_por: [data-service] uso: Historical/realtime market data (stocks, forex, crypto) notas: Also aliased as Massive.com in some config - nombre: Binance API tipo: crypto_exchange critico: false consumido_por: [data-service, mcp-binance-connector] uso: Crypto market data, account info, order placement notas: Read-only in development - nombre: MetaAPI tipo: trading_gateway critico: false estado: NOT_FUNCTIONAL consumido_por: [data-service] uso: MT4 trading bridge (demo accounts only) notas: OQI-009 mt4-gateway at 15% progress - nombre: Stripe tipo: payment_provider critico: true consumido_por: [backend, mcp-products, mcp-vip] uso: Payment processing, subscriptions, refunds, invoices notas: Test mode only in development - nombre: Twilio tipo: communications critico: false consumido_por: [backend] uso: SMS/WhatsApp OTP verification notas: Via Twilio Verify Service - nombre: OAuth Providers tipo: identity critico: true consumido_por: [backend] proveedores: - Google - Facebook - Apple - GitHub uso: Social login / OAuth2 authentication - nombre: Ollama tipo: llm_provider critico: false consumido_por: [ml-engine] uso: Local LLM inference for strategy analysis notas: Also supports Claude via Anthropic SDK - nombre: Anthropic (Claude) tipo: llm_provider critico: false consumido_por: [backend] uso: LLM module strategy analysis notas: Via @anthropic-ai/sdk in llm module - nombre: Firebase (FCM) tipo: push_notifications critico: false consumido_por: [backend] uso: Push notifications via Firebase Cloud Messaging infraestructura: - nombre: PostgreSQL version: "16+" uso: primary_database base_de_datos: trading_platform schemas: 11 tablas: 101 consumido_por: [backend, mcp-auth, mcp-wallet, mcp-products, mcp-vip, mcp-investment, mcp-predictions, data-service, ml-engine] - nombre: Redis version: "7.x" uso: cache_sessions_rate_limiting consumido_por: [backend] funciones: - session storage - rate limiting - feature flag cache - OAuth state store # ───────────────────────────────────────────────────────────────────────────── # DEPENDENCIAS INTERNAS (entre servicios/apps del proyecto) # ───────────────────────────────────────────────────────────────────────────── internal: apps: # ── TypeScript Stack ───────────────────────────────────────────────── backend: nombre: Express.js Backend API puerto: 3081 websocket_puerto: 3082 stack: Express.js 5 + TypeScript depende_de: - database # PostgreSQL via pg Pool (raw SQL) - redis # Sessions, rate limiting, cache - ml-engine # HTTP client (mlEngineClient) - trading-agents # HTTP client (tradingAgentsClient) - NOT DEPLOYED - llm-agent # HTTP client (llmAgentClient) - NOT DEPLOYED dependencias_externas: - Stripe # payments module - Twilio # auth/phone.service (OTP) - Firebase # notifications/firebase.client (push) - Anthropic # llm module (@anthropic-ai/sdk) - OAuth Providers # auth/oauth.service modules: 18 notas: Main API gateway; all frontend requests route through here frontend: nombre: React SPA puerto: 3080 stack: React 18 + Vite 6 + Zustand + TanStack Query depende_de: - backend # REST API (port 3081) - backend-ws # WebSocket (port 3082) notas: All data access goes through backend API; no direct DB/MCP access database: nombre: PostgreSQL DDL stack: PostgreSQL 16+ schemas: [auth, trading, education, financial, investment, ml, llm, audit, portfolio, market_data, feature_flags] tablas: 101 depende_de: [] notas: Foundation layer; no upstream dependencies ml-engine: nombre: ML Engine (Python) puerto: 3083 stack: FastAPI + Python 3.11 + PyTorch + XGBoost depende_de: - database # asyncpg pool (market_data, ml schemas) - data-service # Market data fetching via HTTP dependencias_externas: - Ollama # LLM inference notas: Signal generation, model training, backtesting, predictions data-service: nombre: Data Service (Python) puerto: 3084 stack: FastAPI + Python 3.12 + asyncpg depende_de: - database # asyncpg pool (market_data schema) dependencias_externas: - Polygon.io # polygon_client.py - Binance API # binance_client.py - MetaAPI # metaapi_client.py (NOT FUNCTIONAL) notas: Market data aggregation, batch sync, WebSocket streaming llm-agent: nombre: LLM Agent (Python) puerto: 3085 stack: FastAPI (planned) depende_de: - ml-engine # Model outputs for strategy analysis - database # LLM schema tables estado: NOT_DEPLOYED notas: Planned Python service; currently llm logic lives in backend module trading-agents: nombre: Trading Agents (Python) puerto: 3086 stack: FastAPI (planned) depende_de: - ml-engine # Signal generation - data-service # Market data - database # Trading schema tables estado: NOT_DEPLOYED notas: Planned autonomous trading agents; referenced by backend shared/clients # ── MCP Services ───────────────────────────────────────────────────── mcp-auth: nombre: MCP Auth Service puerto: 3095 stack: TypeScript + MCP SDK + pg Pool depende_de: - database # pg Pool (auth schema - users, sessions, roles, RBAC) notas: RBAC, teams, authentication MCP tools mcp-wallet: nombre: MCP Wallet Service puerto: 3090 stack: TypeScript + MCP SDK + pg Pool depende_de: - database # pg Pool (financial schema - wallets, transactions) notas: Wallet operations, balance management, transaction history mcp-products: nombre: MCP Products Service puerto: 3091 stack: TypeScript + MCP SDK + pg Pool depende_de: - database # pg Pool (financial schema - products, purchases) dependencias_externas: - Stripe # stripeConfig in config.ts notas: Product catalog, purchases, Stripe integration mcp-vip: nombre: MCP VIP Service puerto: 3092 stack: TypeScript + MCP SDK + pg Pool depende_de: - database # pg Pool (financial schema - vip_tiers, subscriptions) dependencias_externas: - Stripe # stripe product/price IDs in types notas: VIP tier management, subscription status mcp-investment: nombre: MCP Investment Service puerto: 3093 stack: TypeScript + MCP SDK + pg Pool depende_de: - database # pg Pool (investment schema) notas: Investment accounts, products, transactions, distributions mcp-predictions: nombre: MCP Predictions Service puerto: 3094 stack: TypeScript + MCP SDK + pg Pool depende_de: - database # pg Pool (ml schema - predictions, packages) - mcp-wallet # HTTP fetch to port 3090 (wallet debit for purchases) - mcp-vip # HTTP fetch to port 3092 (VIP subscription check) notas: Prediction packages, purchase flow, signal delivery mcp-binance-connector: nombre: MCP Binance Connector ubicacion: apps/mcp-binance-connector stack: TypeScript + MCP SDK + CCXT depende_de: [] dependencias_externas: - Binance API # CCXT library notas: Exposes Binance trading tools for AI agents; no database access mcp-mt4-connector: nombre: MCP MT4 Connector ubicacion: apps/mcp-mt4-connector stack: TypeScript + MCP SDK + Axios depende_de: [] dependencias_externas: [] notas: HTTP wrapper for mt4-gateway; no direct MetaAPI or DB access # ───────────────────────────────────────────────────────────────────────────── # BACKEND MODULES (inter-module dependencies within apps/backend/src/modules/) # ───────────────────────────────────────────────────────────────────────────── backend_modules: # Cada modulo lista sus dependencias internas (otros modulos) y externas # Todos los modulos dependen implicitamente de: shared/database, shared/utils/logger, core/guards auth: ruta: apps/backend/src/modules/auth/ schemas_db: [auth] dependencias_modulos: [] dependencias_shared: [database, redis, config, utils/logger] dependencias_core: [middleware/rate-limiter, middleware/auth] dependencias_externas: [OAuth Providers, Twilio] servicios: [auth, email, phone, token, twofa, oauth] notas: Foundation module; no cross-module imports users: ruta: apps/backend/src/modules/users/ schemas_db: [auth] dependencias_modulos: [] dependencias_shared: [database, utils/logger] dependencias_core: [guards/auth.guard] notas: User profile management; independent of other modules trading: ruta: apps/backend/src/modules/trading/ schemas_db: [trading, market_data] dependencias_modulos: - notifications # alerts.service imports notificationService dependencias_shared: [database, utils/logger] dependencias_core: [guards/auth.guard] servicios: [market, order, alerts, bots, watchlist, paper-trading, drawing, export] notas: Core trading operations; provides market.service consumed by portfolio + llm portfolio: ruta: apps/backend/src/modules/portfolio/ schemas_db: [portfolio] dependencias_modulos: - trading # portfolio.service imports marketService from trading dependencias_shared: [database, utils/logger] dependencias_core: [websocket/websocket.server] servicios: [portfolio] repositorios: [portfolio, goal, snapshot] notas: WebSocket for real-time portfolio updates education: ruta: apps/backend/src/modules/education/ schemas_db: [education] dependencias_modulos: [] dependencias_shared: [database, utils/logger, services/storage, services/video-processing] dependencias_core: [guards/auth.guard] servicios: [course, enrollment, quiz, video, reviews, tag, instructor, gamification] notas: Self-contained; enrollment.service consumed by payments module payments: ruta: apps/backend/src/modules/payments/ schemas_db: [financial] dependencias_modulos: - education # payments.controller imports enrollmentService dependencias_shared: [database, utils/logger, config] dependencias_core: [guards/auth.guard] dependencias_externas: [Stripe] servicios: [stripe, wallet, refund, subscription] notas: Payment processing; depends on education for course enrollment after purchase ml: ruta: apps/backend/src/modules/ml/ schemas_db: [ml] dependencias_modulos: [] dependencias_shared: [database, utils/logger] dependencias_core: [websocket/websocket.server] servicios: [ml-data, ml-model-registry, ml-integration, ml-backtest, ml-signal-stream, prediction-overlay] notas: ML signal streaming via WebSocket; ml-integration.service consumed by llm module llm: ruta: apps/backend/src/modules/llm/ schemas_db: [llm] dependencias_modulos: - ml # llm.service imports mlIntegrationService - trading # llm.service imports marketService dependencias_shared: [] dependencias_externas: [Anthropic (Claude)] servicios: [llm] notas: Strategy analysis using LLM + ML signals + market data admin: ruta: apps/backend/src/modules/admin/ schemas_db: [] dependencias_modulos: [] dependencias_shared: [database, redis, clients/ml-engine, clients/trading-agents] notas: Admin dashboard; communicates with Python services via HTTP clients market-data: ruta: apps/backend/src/modules/market-data/ schemas_db: [market_data] dependencias_modulos: [] dependencias_shared: [database, redis, utils/logger] servicios: [marketData] notas: Market data queries and caching audit: ruta: apps/backend/src/modules/audit/ schemas_db: [audit] dependencias_modulos: [] dependencias_shared: [database, utils/logger] dependencias_core: [guards/auth.guard] servicios: [audit] notas: Audit logging; standalone module notifications: ruta: apps/backend/src/modules/notifications/ schemas_db: [auth] dependencias_modulos: [] dependencias_shared: [database, utils/logger, config, clients/firebase] dependencias_core: [websocket/websocket.server] dependencias_externas: [Firebase] servicios: [notification] notas: Push + in-app notifications; consumed by trading.alerts and investment.distribution investment: ruta: apps/backend/src/modules/investment/ schemas_db: [investment] dependencias_modulos: - notifications # distribution.job imports notificationService dependencias_shared: [database, utils/logger] dependencias_core: [guards/auth.guard] servicios: [account, product, transaction] repositorios: [account, product, transaction, distribution, withdrawal] jobs: [distribution] notas: Investment accounts with scheduled distribution jobs agents: ruta: apps/backend/src/modules/agents/ schemas_db: [] dependencias_modulos: [] dependencias_shared: [utils/logger, clients] servicios: [agents] notas: Orchestrates Python trading agents via shared HTTP clients currency: ruta: apps/backend/src/modules/currency/ schemas_db: [market_data] dependencias_modulos: [] dependencias_shared: [database, redis, utils/logger] servicios: [currency] notas: Currency conversion and exchange rate management risk: ruta: apps/backend/src/modules/risk/ schemas_db: [trading] dependencias_modulos: [] dependencias_shared: [database] dependencias_core: [guards/auth.guard] repositorios: [risk] notas: Risk assessment and portfolio risk analysis proxy: ruta: apps/backend/src/modules/proxy/ schemas_db: [] dependencias_modulos: [] dependencias_shared: [config] dependencias_core: [middleware/auth] servicios: [proxy] notas: API proxy for external service forwarding feature-flags: ruta: apps/backend/src/modules/feature-flags/ schemas_db: [feature_flags] dependencias_modulos: [] dependencias_shared: [database, utils/logger] dependencias_core: [middleware/auth] servicios: [feature-flags] notas: Feature flag management; admin-only routes # ───────────────────────────────────────────────────────────────────────────── # OQI -> SCHEMA MAPPING (Epics to database schemas) # ───────────────────────────────────────────────────────────────────────────── oqi_to_schema: OQI-001: nombre: fundamentos-auth progreso: 85% schemas: - schema: auth tablas: 12 - schema: audit tablas: 7 - schema: feature_flags tablas: 3 total_tablas: 22 modulos_backend: [auth, users, audit, feature-flags] modulos_mcp: [mcp-auth] OQI-002: nombre: educativo progreso: 55% schemas: - schema: education tablas: 19 total_tablas: 19 modulos_backend: [education] modulos_mcp: [] OQI-003: nombre: trading-charts progreso: 60% schemas: - schema: trading tablas: 13 - schema: market_data tablas: 4 total_tablas: 17 modulos_backend: [trading, market-data, currency, risk] modulos_mcp: [mcp-binance-connector, mcp-mt4-connector] servicios_python: [data-service] OQI-004: nombre: cuentas-inversion progreso: 55% schemas: - schema: investment tablas: 10 total_tablas: 10 modulos_backend: [investment] modulos_mcp: [mcp-investment] OQI-005: nombre: pagos-stripe progreso: 65% schemas: - schema: financial tablas: 11 total_tablas: 11 modulos_backend: [payments] modulos_mcp: [mcp-wallet, mcp-products, mcp-vip] OQI-006: nombre: senales-ml progreso: 75% schemas: - schema: ml tablas: 12 total_tablas: 12 modulos_backend: [ml, agents] modulos_mcp: [mcp-predictions] servicios_python: [ml-engine, trading-agents] OQI-007: nombre: llm-strategy-agent progreso: 45% schemas: - schema: llm tablas: 5 total_tablas: 5 modulos_backend: [llm] modulos_mcp: [] servicios_python: [llm-agent] OQI-008: nombre: portfolio-manager progreso: 45% schemas: - schema: portfolio tablas: 5 total_tablas: 5 modulos_backend: [portfolio] modulos_mcp: [] OQI-009: nombre: mt4-gateway progreso: 15% estado: NOT_FUNCTIONAL schemas: [] total_tablas: 0 modulos_backend: [] modulos_mcp: [mcp-mt4-connector] notas: MetaAPI integration not functional; demo account only # ───────────────────────────────────────────────────────────────────────────── # CROSS-MODULE DEPENDENCY GRAPH (visual summary) # ───────────────────────────────────────────────────────────────────────────── # # llm ──> ml ──> (websocket) # │ # └──> trading ──> notifications ──> (websocket, firebase) # │ # portfolio ─┘ # # payments ──> education # # investment ──> notifications # # admin ──> (mlEngineClient, tradingAgentsClient) # agents ──> (shared/clients → ml-engine, trading-agents, llm-agent) # # Standalone: auth, users, market-data, audit, currency, risk, proxy, feature-flags # # ───────────────────────────────────────────────────────────────────────────── # SERVICE COMMUNICATION GRAPH # ───────────────────────────────────────────────────────────────────────────── # # frontend ──HTTP──> backend ──HTTP──> ml-engine ──HTTP──> data-service ──HTTP──> Polygon.io # │ │ └──> Binance API # │ ├──HTTP──> trading-agents (NOT DEPLOYED) # │ └──HTTP──> llm-agent (NOT DEPLOYED) # │ # └──WS──> backend:3082 # # mcp-predictions ──HTTP──> mcp-wallet (debit) # └──HTTP──> mcp-vip (subscription check) # # mcp-binance-connector ──CCXT──> Binance API # mcp-mt4-connector ──HTTP──> mt4-gateway (NOT FUNCTIONAL) # # [All DB-connected services] ──pg/asyncpg──> PostgreSQL (trading_platform) # # ───────────────────────────────────────────────────────────────────────────── # ───────────────────────────────────────────────────────────────────────────── # PORT REGISTRY # ───────────────────────────────────────────────────────────────────────────── ports: 3080: frontend 3081: backend 3082: backend-websocket 3083: ml-engine 3084: data-service 3085: llm-agent 3086: trading-agents 3090: mcp-wallet 3091: mcp-products 3092: mcp-vip 3093: mcp-investment 3094: mcp-predictions 3095: mcp-auth 5432: postgresql 6379: redis