You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Multi-tenant crypto algorithmic trading platform. Binance WebSocket ticks flow through a Kafka event pipeline (Python) into OMS/EMS microservices (C# .NET 8) backed by PostgreSQL + TimescaleDB, with full observability via Prometheus, Grafana, and Jaeger.
Architecture
flowchart TD
BW["Binance WebSocket\n(100 ms ticks)"]
EC["Exchange Connector\n(Python)"]
CA["Candle Aggregator\n(Python · 5 m OHLCV)"]
SP["Signal Pipeline\n(Python)"]
ML["MLSignalSource\nLightGBM"]
LLM["LLMSignalSource\nClaude / GPT"]
SR["Signal Router\n(Python · per-tenant)"]
OMS["OMS\n(C# .NET 8)"]
EMS["EMS\n(C# .NET 8)"]
BRest["Binance REST\n(testnet)"]
BW -->|market-data-raw| EC
EC -->|market-data-candles| CA
CA -->|candles| SP
SP --> ML
SP --> LLM
ML -->|"trade-signals (source=ml)"| SR
LLM -->|"trade-signals (source=llm)"| SR
SR -->|order-requests| OMS
OMS -->|validated-orders| EMS
EMS --> BRest
EMS -->|order-fills| OMS
Loading
Signal sources are pluggable — select via SIGNAL_SOURCE=ml|llm|both. LLM signals are generated by Claude or GPT analysing recent candle data and technical indicators, running at a configurable slower cadence (default 15 min) to manage API cost.