Componenti principali
server.js: bootstrap servizio via createMicroserviceServer.
modules/main.js: service base (BaseService, settings, bus, logger).
modules/ibkrMarketData.js: logica streaming IBKR + API subscriptions/snapshot.
Flusso live market data
- Il servizio apre una WS verso
IBKRGW_BASE_URL (/v1/api/ws).
- Risolve
conid per ticker e invia subscribe (smd+...).
- Riceve tick dal gateway.
- Pubblica payload normalizzato su Redis data channel del servizio.
Flusso snapshot
- Il loop snapshot legge i ticker sottoscritti.
- Richiama
ibkr-bridge (/mirror/iserver/marketdata/snapshot).
- Normalizza i record snapshot e li pubblica sul Redis data channel.
Integrazione con gli altri microservizi
decision-engine usa endpoint /subscriptions e /snapshot/* per abilitare/disabilitare live mode.
- I consumer interni ascoltano il canale Redis
ENV.market-data-service.data.
Integrazione con datahub
- settings runtime caricati via
DATAHUB_URL/DBMANAGER_URL (BaseService + loadSettings);
- log persistenti inviati a datahub (
/logs) tramite logger shared.