Four Hearts (4H)
Sales summary — spec-driven Java FIX engine
 
Shimpinomori.NET

Version 2.26.6.29.1 · Benchmark date: 28 June 2026 · AMD Ryzen 7 7735U · OpenJDK 21 · Report: examplebank-matrix.txt

Four Hearts is a spec-driven, microsecond-class Java FIX kernel that turns wire messages into typed session objects — proven in production, re-validated in 2026, fastest cell in a 9-way ESP matrix against QuickFIX/J and FIX Antenna Java, with every cross-engine combination passing on the wire.

The problem

Banks and brokers still wire counterparty connectivity with FIX, but most stacks force a painful trade-off:

  • Open source (QuickFIX/J) — cheap, slow, tag soup, operational pain
  • Commercial — fast, expensive, often still tag-oriented APIs
  • In-house — years of dialect maintenance, fragile session logic

Teams need low latency, stable memory, and clean integration without rebuilding session machinery for every counterparty.

The 4H answer

  1. Spec language + codegen — define a counterparty dialect once; generate typed Java. Messages stay data on the wire; behaviour lives in your app.
  2. Session pipeline — FIX bytes become typed session messages through a pub/sub kernel you wire once.
  3. Embeddable microkernel — a library, not a monolithic server. You own the process layout.
  4. Proven coverage — Barclays, Deutsche, Citi, GS, Morgan Stanley, Currenex, Commerzbank, Lucid, Traiana, and others.

Performance — measured, not marketed

Honest ESP benchmark: ExampleBankFlow — repeating groups, drifting FX mids, watchlist rotation, realistic clips (1M–10M). Same payloads for _4h, QuickFIX/J 2.3.2, and FIX Antenna Java 2.27.0.

9×9 client×server matrix (median p50, µs)

5,000 warmup · 50,000 measured iterations · 3 runs per cell · cross-engine cells in separate JVMs

client \ server _4h QuickFIX/J FIX Antenna
_4h 21.6 104.3 93.7
QuickFIX/J 94.2 77.0 83.0
FIX Antenna 89.9 84.4 63.5
HighlightResult
Fastest cell (entire matrix)_4h client + _4h server — 21.6 µs p50, 38,106 ops/s
Best average as client_4h 73.2 µs (QFJ 84.7, Antenna 79.3)
Best average as server_4h 68.6 µs (QFJ 88.6, Antenna 80.1)
Cross-engine interopAll 9 cells pass on TCP (~84–104 µs off-diagonal)
_4h diagonal stabilityRuns: 25.2 / 21.6 / 18.1 µs → median 21.6 µs
How these highlight figures are computed (from ExampleBankMatrixRunnerexamplebank-matrix.txt):
  • Fastest cell — the single lowest p50 among all 9 client×server pairings (here: _4h↔_4h at 21.6 µs).
  • Best average as client — arithmetic mean of the three p50 values in that engine’s row (when it acts as client against each server). _4h: (21.6 + 104.3 + 93.7) ÷ 3 = 73.2 µs.
  • Best average as server — arithmetic mean of the three p50 values in that engine’s column (when it acts as server against each client). _4h: (21.6 + 94.2 + 89.9) ÷ 3 = 68.6 µs.
Row/column averages include cross-engine cells (~84–104 µs), so they are softer summary metrics than the homogeneous diagonal. Use 21.6 µs for the headline speed claim; use client/server averages to show _4h leads on both axes across the full grid.

Sound bites

“Fastest quote path, measured nine ways.” Every engine as client vs every engine as server. 4H↔4H won at 21.6 µs — not a cherry-picked single run.
“Best stack whether you send or receive.” Lowest average latency as client and as server in the same matrix.
“Interop is a test suite, not a slide.” All six cross-engine pairs pass on TCP with identical grouped ESP payloads.
“~3× faster than the commercial baseline.” 21.6 µs vs Antenna 63.5 µs and QFJ 77.0 µs on homogeneous diagonals — same honest payloads.
“Run it yourself.” ./gradlew :engine:examplebankMatrix → full report on your hardware.
“Four Hearts gives you commercial-grade Java FIX latency with a spec-driven typed session layer. We measured it nine ways — every client against every server, against QuickFIX/J and FIX Antenna on identical ESP payloads: 4H won the fastest cell at 21.6 microseconds, topped both client and server averages, and every cross-engine pair passed on the wire. You get the speed for electronic trading, the architecture to stay in production for years, and a benchmark you can re-run on your own hardware — not a vendor echo slide.”

Honest caveats: Raw parse favours tag-oriented engines (Antenna ~0.6 µs vs _4h ~5 µs). Cross-engine cells are ~84–104 µs for all stacks — cite the homogeneous diagonal for speed claims. We do not claim sub-5 µs or “fastest FIX in the world.”