← Ventures — GCStore Constellation

GCStocks Stream — Level-2 Deep Dive

GCStocks Stream is the constellation's real-time market-data backend. It fans in live and on-demand market data from several independent upstream vendors (crypto and US equities), normalizes everything to a single canonical wire format, and re-emits it to internal consumers as streams (Server-Sent Events) and pull endpoints. It is the data foundation for capital-markets features across the venture — the first being intraday/daily valuation of open positions for the ERP.

GCStocks Stream Level-2 internal architecture

Internal architecture

A Maven multi-module monorepo, deliberately split three ways:

Inside the aggregator:

Why this shape. The hard problems are (1) fanning many long-lived upstream streams out to many downstream consumers without blocking — hence reactive, not servlet; (2) staying inside metered, capped vendor budgets — hence the demand-driven subscription plane and the volume-gated miner; and (3) keeping one stable data definition across many producers and a framework migration — hence the framework-free contracts module. The rejected alternative throughout was coupling directly to a live vendor; the simulator plus the MarketSource abstraction keep the vendor at arm's length and make the licensed feed a drop-in.

Interfaces

Tech stack

Java 21 · Spring Boot (WebFlux, reactive) · Project Reactor / Reactor Netty · Maven multi-module monorepo (contracts / simulator / aggregator) · WebSocket (upstream) → Server-Sent Events + REST (downstream) · relational read-model with typed, versioned SQL migrations · Docker (multi-stage → JRE runtime) · deployed behind the platform's nginx/TLS and shared data plane.

Status & near roadmap

Pre-production — commercial data licensing underway. Built and running against live vendors in development: the reactive multi-source aggregation, the subscription control plane, all four pull/stream capabilities, the simulator, and the read-model + volume-gated catalog data-mining. A provider survey established that shipping market data inside a commercial product requires a licensed feed; vendor evaluation is underway, and because every source sits behind the MarketSource abstraction, the licensed feed drops in as one more source with no pipeline change.

Near roadmap: a live-session sampler — prioritized WebSocket sampling of the highest-volatility symbols within the vendor symbol cap, promoting names as they heat up — is in design; then the ERP valuation edge.