Product

Trading

One streaming platform for trading desks, quant research and the systems between them.

Most trading firms run a message bus, a database, a replication tool, a stream processor and an archive. Each is a different technology that needs its own expertise. Live and historical systems are built on different infrastructure, and research works from its own copy of the data.


Why AlgoX2

One platform for streaming data. Storage, networking, stream processing, connectors and lakehouse gateways run in one fault-tolerant cluster. Developers build applications on it, operators configure pipelines, and analysts query it through Spark or the lakehouse.

Multi-protocol by design. AlgoX2 is Kafka API compatible: point existing producers and consumers at it by changing the bootstrap address. It also speaks NATS, MQTT, Redis and HTTP/WebSocket. Publish with one protocol and subscribe with another.

Deterministic replay. Orders, fills and prices from every source form one ordered timeline. Any range can be replayed without affecting live consumers. An auditor who wants the book as it was at 10:32 replays it to 10:32.

Any data. Raw binary, such as PCAP or a proprietary feed, goes in as it is, alongside structured messages. Nothing has to be decoded first.

Your code inside the cluster. Decoders, filters and strategy runners run as userprocs: programs the cluster runs and supervises, with streams as input and output. Most of the use cases below are built this way.

By the numbers
New data to consumersWithin tens of microseconds
Your code to its dataMicroseconds
ProtocolsKafka, NATS, MQTT, Redis, HTTP and WebSocket
Native clientsC++, Python, Go and Rust

The pattern

Every use case below works the same way. Sources write events to streams. A program in the cluster reads them, keeps the state it needs, and writes results to another stream. Desks, dashboards and the lakehouse subscribe to that stream. Output depends only on input, so replay rebuilds it.


Use cases

Pricing data distribution

Pricing touches every internal system, yet in most firms it is spread over many systems with no global ordering.

On AlgoX2, pricing parameters come in on one stream, next to the security master. Pricing applications read them and publish prices, Greeks and sensitivities on a second stream. Every consumer sees the same version, from the colo to risk dashboards, and everything lands in Iceberg or Delta tables on S3.

Pricing parameters and the security master feed pricing apps, whose output every consumer readsPricing componentmanualPricing componentautomatedSecurity masterreference-data tape/pricing-paramsspreadskewvol curvelimitsspreadskewnext/security-masterUPDNEWCORPUPDNEWDELISTnext/pricespriceGreekspricescenariosenspricenextPricerpricesScenariosshocksGreeksΔ · Γ · vegaSensitivitiesper instrumentTrading componentsquote & hedge off one priceRisk & P&Lmarks and GreeksVisualisation GUIsprices, params, riskMonitoringstale prices · jumpsCloud storageDelta / Icebergpoint-in-time: rebuild parameters, prices and risk behind any trade
Scroll sideways for the whole diagramTwo pipes on one timeline: pricing parameters in, prices and risk out. Every consumer sees the same version.

Dark pool and internalizer

Every desk trade sent to the street pays fees and spread, and shows your hand. Many could have crossed with your own market-making desk.

On AlgoX2, quotes and desk orders arrive in one order. A crossing engine matches them at a price tied to the NBBO or the mid and sends only the rest to the street. First come, first served, so fairness is never in question, and any cross can be replayed.

Market-maker quotes and desk orders feed one crossing engine that books internal tradesMarket makingtwo-sided quotesMFT deskalpha ordersOptions volatilitydelta hedgesStatArbpairs · basketsDelta managerfirm-wide offsets/mm-quotesQ-771Q-772Q-773Q-774Q-775Q-776next/desk-orders#1041#1042#1043#1044#1045#1046next/internal-tradesMM–MFTMM–VOLVOL–DLTMM–SARBMM–DLTnextInternal crossing engineNBBO or mid · priority by sequenceFills to both desksmarket maker and takerCentral risk booknet exposurePer-desk P&Ltransfer pricingCompliancebest-ex evidenceStreet via SORunmatched residual onlyboth sides of every cross booked from the same ordered record
Scroll sideways for the whole diagramDesks trade with the market-making desk first, and only the residual goes to the street. Every internal cross is sequenced, fair and replayable.

Security master

Every system depends on the security master, yet most pick up changes from nightly files or by polling a database, so some are always a version behind.

On AlgoX2, each source goes in as it is. A consolidator maps it to one schema and one instrument ID and writes a single ordered tape of changes. Every system subscribes and sees each change as it happens. You can also ask what the reference data was on any past date.

Reference-data sources consolidated into one ordered tape that every component followsBloombergreference dataRefinitivreference dataExchange fileslistings · tick & lot sizesCorporate actionssplits · dividendsOps editsmanual overrides/reference-rawBloombergexchangeRefinitivcorp actopsnext/security-masterSNAPNEWUPDCORPDELISTNEWnextConsolidatorone schema · one instrument IDTrading componentsstrategies · gatewaysRisk & pricingbooks · models · limitsVisualisation GUIschange historyMonitoringconflicts · late feedsCloud storagefull historystart-up: read the latest snapshot, then follow changes
Scroll sideways for the whole diagramEvery reference-data source is consolidated once into one ordered tape of changes that every component follows in real time.

Order and execution management

Most OMS and EMS platforms keep order state, the audit trail and recovery in three systems. Under load they disagree.

On AlgoX2, the order lifecycle is the stream. Every event is sequenced and replicated before anyone acts on it, so the journal is the order state. Two copies of the engine write the same stream, so losing one needs no failover. Venue gateways run inside the cluster, and risk, TCA, surveillance and trader screens read the same stream without loading the order path. RFQs work the same way: small requests are quoted automatically and large ones go to a trader.

RFQs from every venue and prices run through one replicated state machineVenue 1RFQs via gatewayVenue 2RFQs via gatewayVenue 3RFQs via gatewayPricing engineseparate process/rfq-inRFQRFQCXLACPTEXPCNTRnext/pricespxpxpxpxpxpxnext/rfq-stateQUOTEDACCEPTED→ traderCOUNTEREXPIREDnextRFQ state machinecopy ARFQ state machinecopy B · hot-hotVenuesquotes out via gatewaysTrader GUIlarge RFQs · blotterRisk & positionsfills to the risk bookMonitoringhit ratio · latencyCloud storagefull audit trailsmall RFQs are auto-quoted, large ones go to a trader
Scroll sideways for the whole diagramEvery RFQ from every venue runs through one sequenced state machine, auto-quoted or traded by hand. Two copies write the same stream.

Real-time central risk book

Stream every drop copy and every marked price into AlgoX2, and the firm gets one ordered timeline of what it holds and what it is worth.

A position engine in the cluster updates exposure on every fill, per desk and net for the firm. The delta manager hedges the firm’s net position, not each desk’s gross. Limits and kill-switches act on the fill that breaches them. Replaying fills and marks rebuilds the exact book at any past moment.

Every desk's fills and every mark feed one position engine that publishes exposureDrop copiesraw FIX, every deskInternal tradesfrom the internalizerClearing & primesallocations · marginMarks & pricesvol surfaces · GreeksSecurity mastermultipliers · FX/fillsMMVOLMMSARBDLTMFTnext/marksSPXAAPLSPX volEURUSDAAPLcorp actnext/exposureSNAPΔ SPXΔ AAPLΔ SPXΔ divSNAPnextPosition & exposure enginefills × marks, on every fillDelta managerhedges the firm netLimits & kill-switchper desk and firm-wideCompliancelimits · short-saleRisk dashboardsweb UI over WebSocketAudit trailwho held what, at what markS3 lakehouseIceberg / Deltareplay fills and marks to rebuild the exact book at any past moment
Scroll sideways for the whole diagramEvery desk's fills and every mark land on one ordered timeline, so the firm sees its net exposure on every fill and can rewind it to any moment.

PCAP ingestion

Packet captures usually sit in files at each colo until a copy job moves them, and live analysis, backtesting and storage each work from their own copy.

On AlgoX2, captures stream from each colo as they are written, hardware timestamps intact. After an outage the stream picks up where the cluster’s copy ends, with nothing lost or duplicated. Live consumers read ordered streams, and the raw packets stay as an immutable record for compliance and backtesting. A decoder bug is fixed by replaying the affected range.

Packet captures stream from each colo into the cluster, where decoders turn them into market eventsColo 1capture filesColo 2capture filesColo 3capture files/pcapcolo 1colo 3colo 2colo 1colo 2colo 1next/market-eventsBOOKTRADEBOOKADJTRADEBOOKnextDecodersone common schemaPricing adjusterbooks + tradesVisualisation GUIsbooks · trades · pricesMonitoringfeed gaps · latencyBacktestingreplay any rangeCloud storageS3 · raw and derivedhardware timestamps preserved · fix a decoder by replaying the raw range
Scroll sideways for the whole diagramCaptures leave every colo as a live stream and are decoded inside the cluster. The raw packets stay as the Bronze layer.

Configuration as a stream

Changing a trading component’s configuration usually means a restart or a database that keeps no history.

On AlgoX2, configuration is a stream. A component reads the latest snapshot when it starts and applies changes while it runs. A kill-switch is one message that reaches every instance. Every change is ordered and recorded, with who made it.

Configuration changes from every source on one ordered stream that components apply liveConfig GUIops & tradersAutomated controlsrisk limits · failoverConfig repoCI/CD deploys/configSNAP v40+ symbolpath BKILLlimit ↑nextTrading componentsapplied live, no restartVisualisation GUIslive config per instanceMonitoringdrift · failed appliesCloud storageevery change, replayablea kill-switch is one message that reaches every instance
Scroll sideways for the whole diagramConfiguration gets the same guarantees as market data: ordered, replicated, auditable, and applied live without restarts.

Parallel strategies

To test a new strategy version next to production, every experiment needs identical, ordered input.

On AlgoX2, production publishes its inputs and trades once. Each experiment subscribes to the same input, in the same order, and production does no extra work. Results sit side by side on one stream, and any run can be repeated exactly. Any difference comes from the strategy, so you can promote a new version with confidence.

Production publishes its inputs once and every experiment reads them in the same orderProduction strategycolo · trades live, unchanged/inputstickticktimeticktickticknext/tradesPRODExp 1Exp 2PRODExp 1Exp 3nextExp 1new modelExp 2new paramsExp 3new featuresExp N…Comparison GUIper tick vs productionMonitoringdivergence · latencyCloud storageinputs + tradesquiet feeds still advance the clock · Exp N+1 is one more subscriber
Scroll sideways for the whole diagramProduction shares exactly what it sees. Experiments run on the same ticks in the same order, so any difference comes from the strategy.

Model fitting and features

The models are yours. What is usually missing is the plumbing: fitted parameters reach consumers by different paths, and nothing records which inputs produced a fit.

On AlgoX2, fitters publish to the same streams pricing reads. Each feature records the input it was computed from, and research recomputes features with the production code by replaying the inputs. AlgoX2 owns ordering, distribution and history. The mathematics stays yours.

Fitters and inference services read input streams and publish parameters and featuresMarket dataFills, positions, riskModel definitions/inputstickfilltickrisktickmodelnext/params · /featuressurfacefeaturecurvefeaturemodel vfeaturenextFitters & featuressurfaces · curves · factorsInference servicesfeatures in, predictions outQuoting & executionRisk & pricingTraining & researchLakehouseeach feature records the input position it was computed from
Scroll sideways for the whole diagramFitters stay your applications. AlgoX2 carries their inputs and outputs.

Research-cluster allocation

Most in-house schedulers keep decisions, running state and usage history in different places. When a node dies, jobs are lost or scheduled twice.

On AlgoX2, scheduling is an ordered stream. Jobs post requests, nodes report capacity, and policies set quotas and priorities. The scheduler matches them like an exchange, and a second copy writes the same decisions, so there is no double placement. Usage history lands in the lakehouse for capacity planning and chargeback.

Job requests, node capacity and policies feed a scheduler that writes allocationsResearch pipelinesbacktests · sweeps · trainingPoliciesquotas · fair shareCompute nodescapacity and health/requestsjobsweepquotatraincanceljobnext/capacitynode 4node 9node 2node 4node 7node 1next/allocationsplaceplacepreemptreleaseplacereleasenextSchedulerrequests × free capacitySecond copysame input, same outputExecutorsjobs start next to their dataOperationsquotas · chargeback per deskLakehouseusage history · audita restarted scheduler rebuilds its state from the log
Scroll sideways for the whole diagramRequests, capacity and allocations are events on one ordered log, and the scheduler is a matcher over the log.

Application telemetry

Telemetry usually runs apart from the trading path, so a latency spike cannot be tied to the order that caused it, and the detail is gone in days.

On AlgoX2, metrics, logs and traces go to streams beside the data they describe. A program in the cluster feeds dashboards and ClickHouse, and the raw stream goes to the lakehouse at full detail. You can test a new alert rule on last week’s data.

Metrics, logs and traces stream into the cluster, which aggregates them for dashboards and archivesTrading componentsgateways · strategies · OMSInfrastructurehosts · NICs · switchesPipelines and jobsresearch runs · userprocs/telemetrymetriclogtraceeventmetriclognext/telemetry-derivedp99alertcounthop latp99countnextIn-stream processingcounters · percentiles · enrichmentLive dashboardsGrafana · alertingClickHouseinteractive queriesLakehouseraw, full detailreplay any window through a new aggregation or alert rule
Scroll sideways for the whole diagramOne pipeline from emission to dashboard to archive: live consumers, ClickHouse for interactive queries, the lakehouse for full retention.

What is different about AlgoX2

A typical trading stackOn AlgoX2
A separate fleet to filter or reformat feedsFilters run in the cluster, on its spare capacity
Every topic and partition adds filesA stream per instrument or desk is fine
Connector code or middleware between protocolsPublish over one protocol, read over another
Standby failover, where state gets lostTwo copies write the same stream
History from the lakehouse, live from the busOne subscription from the past into live
Every new consumer loads the brokerA new consumer costs only its gateway
Bus, replication, processing, connectors, archiveOne fault-tolerant cluster

These eleven systems are usually eleven separate projects. On AlgoX2 each is a program that reads streams and writes a stream, with the same ordering, the same replay and the same cheap fan-out. Research works from the data production actually saw.

Running an exchange or a venue instead? See Financial Markets.

Start typing to search

↑↓ Navigate↵ SelectEsc Close