Skip to content

A quantitative finance news feed with an integrated IDE and Jupyter Notebook GUI using Python's FastAPI, developed using React/TypeScript.

Notifications You must be signed in to change notification settings

dawsh2/AlphaPulse

Repository files navigation

AlphaPulse

see: https://alphapulse.org

A quantitative trading news feed and platform that enables both code or UI driven strategy research and development.

System Architecture

graph TD
    %% Exchange Data Sources
    subgraph "Exchange WebSockets"
        KrakenWS[Kraken]
        CoinbaseWS[Coinbase]
        BinanceWS[Binance]
    end

    %% Hot Path - Market Data Pipeline
    subgraph "Hot Path (5-35μs latency)"
        subgraph "Data Collectors (Rust)"
            KrakenCollector[Kraken Collector]
            CoinbaseCollector[Coinbase Collector]
            BinanceCollector[Binance Collector]
        end

        RelayServer[Relay Server<br/>Fan-out Hub<br/>Rust]

        subgraph "Data Consumers"
            FrontendBridge[Frontend Bridge<br/>Binary→JSON<br/>Rust]
            NautilusTrader[NautilusTrader<br/>Trading Engine<br/>Python]
        end
    end

    %% Warm/Cold Path - APIs & Analysis
    subgraph "Warm/Cold Path (1-100ms latency)"
        ReactDashboard[React Dashboard<br/>TypeScript]
        FastAPI[FastAPI Backend<br/>Python]

        subgraph "Analysis Environment"
            Jupyter[Jupyter Notebooks]
            NautilusBacktest[NautilusTrader<br/>Backtesting]
            DuckDB[DuckDB/Pandas<br/>Analytics]
        end
    end

    %% Data Storage
    subgraph "Data Storage"
        TimescaleDB[(TimescaleDB<br/>Live & Historical)]
        ParquetFiles[(Parquet Files<br/>Analysis)]
        BacktestDB[(Backtest Results)]
        Redis[(Redis<br/>Cache/Sessions)]
    end

    %% External Systems
    Exchanges[Live Exchanges<br/>Order APIs]

    %% Hot Path Connections
    KrakenWS -->|JSON| KrakenCollector
    CoinbaseWS -->|JSON| CoinbaseCollector
    BinanceWS -->|JSON| BinanceCollector

    KrakenCollector -->|Unix Socket| RelayServer
    CoinbaseCollector -->|Unix Socket| RelayServer
    BinanceCollector -->|Unix Socket| RelayServer

    RelayServer -->|Unix Socket| FrontendBridge
    RelayServer -->|Unix Socket| NautilusTrader

    FrontendBridge -->|WebSocket| ReactDashboard
    FrontendBridge -->|Write| TimescaleDB
    NautilusTrader -->|Orders| Exchanges
    NautilusTrader -->|Fills/Orders| TimescaleDB

    %% Warm/Cold Path Connections
    ReactDashboard <==>|HTTP/WS| FastAPI
    FastAPI <==>|Queries| TimescaleDB
    FastAPI <==>|Cache| Redis

    Jupyter -->|HTTP API| FastAPI
    Jupyter -->|Direct| NautilusBacktest

    %% Data Pipeline
    TimescaleDB -->|Export| ParquetFiles
    DuckDB <==>|Read| ParquetFiles
    NautilusBacktest -->|Results| BacktestDB

    %% Styling
    classDef hotPath fill:#ff6b6b,stroke:#d63031,stroke-width:2px,color:#fff
    classDef warmPath fill:#74b9ff,stroke:#0984e3,stroke-width:2px,color:#fff
    classDef storage fill:#55a3ff,stroke:#2d3436,stroke-width:2px,color:#fff
    classDef external fill:#fd79a8,stroke:#e84393,stroke-width:2px,color:#fff

    class KrakenCollector,CoinbaseCollector,BinanceCollector,RelayServer,FrontendBridge,NautilusTrader hotPath
    class ReactDashboard,FastAPI,Jupyter,DuckDB,NautilusBacktest warmPath
    class TimescaleDB,Redis,ParquetFiles,BacktestDB storage
    class KrakenWS,CoinbaseWS,BinanceWS,Exchanges external
Loading

License

MIT

Support

About

A quantitative finance news feed with an integrated IDE and Jupyter Notebook GUI using Python's FastAPI, developed using React/TypeScript.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages