Skip to content

Explanation

Understand concepts and design decisions behind FLOX. These pages are language-agnostic; code samples use tabs where they help.

Overview

Topic What You'll Learn
Architecture How components fit together
Bar Types Time, tick, volume, range, bps-range, Renko, Heikin-Ashi — when to use which
Disruptor Pattern Why we use ring buffers (system-level, C++ internals)
Memory Model Zero-allocation event delivery (system-level, C++ internals)
Integration Flow End-to-end data flow through the system
Indicators What each indicator measures and when to use it
Venue types How a venue type (CEX, AMM, hybrid) drives pricing and settlement routing
Per-symbol scale How fixed-point price/quantity scale is chosen per symbol for DEX-range tokens
On-chain order lifecycle Pending, reverted, and gas-replaced states for DEX orders
Liquidity-provision signals Provide and withdraw signals for AMM pool positions
Position valuation The hook for nonlinear (LP, option) position valuation
AMM pricing in backtests Constant-product pool pricing, slippage, and price impact for DEX swaps
Market-making quoter Two-sided quote ladder with inventory skew and requote tolerance
AMM DEX connector Presenting a constant-product pool through the connector interface
Replay-equivalence gate The CI check that defends deterministic backtest replay
Bar-close ordering Which aggregator fires first when several bars close on the same instant
Connectors The native exchange connectors module and the interfaces it implements
MCP control plane Why the AI-agent control surface is shaped the way it is
Venue-stack reproducibility What makes a backtest result reproducible across machines
Build feature flags Every CMake option, what it costs, and what it depends on

When to read these

  • Before diving deep into customization
  • When you want to understand design trade-offs
  • If you're debugging performance issues

A note on language

Some explanation pages — Disruptor Pattern, Memory Model — describe internals of the C++ engine itself. Code in those pages is C++ because that is the implementation. If you only use the Python, Node.js, or Codon bindings you can read them as background; the bindings expose the relevant behaviour through their own APIs without you needing to touch C++.