You shouldn't trust a trading platform that won't explain itself. This document walks the whole system — the data path, the failure drills, the decision pipeline, the isolation model, the learning math and the money-safety locks — with measured numbers, not marketing numbers. What you won't find is a parts list: the architecture is the product, and it stays ours.
Sooth holds a single direct market-data connection to the exchange that serves every user on the platform — nobody gets a different price, ever. Every trade print forks two ways: a hot path that reaches the engines and your screen in milliseconds, and a durable price vault that makes every historical second replayable — even a forty-second trade has a frame-by-frame replay.
The feed runs as a leader/standby pair holding an atomic, expiring lease. Our failover drill isn't a slide — we hard-kill the leader process and time the standby taking over. Every pipe carries a heartbeat with a short expiry: if one vanishes, the platform calls the data dark, engines refuse new entries while blind (existing stops keep managing), and the UI says "stale" — never "quiet market."
An all-exchange radar sweeps 400+ markets every 60 seconds and promotes the biggest movers into the fast lane. Every carried market then runs the full six-gate gauntlet — scan, vote, gate, size, manage, learn — in a single pass measuring about 30 milliseconds, repeated up to 120 times a minute. Ten named strategies vote with voice weights earned from their real track record; the vote still has to clear the fee wall, spread and regime checks, then size against risk. Almost everything dies at a gate. That's the design.
Every record is protected by row-level security enforced inside the database engine: the application role can only see rows belonging to the authenticated user. It isn't application code remembering to filter — the datastore itself refuses. At runtime, every user+engine pair runs in its own contained runtime: a crashing engine is quarantined and restarted without touching a neighbor. Brokerage keys are stored under authenticated symmetric encryption and decrypted only inside the trading worker at the moment of a brokerage call — the web layer never holds plaintext keys.
Strategy voices aren't set by us and can't be fit to a pretty backtest: they're earned through walk-forward study — the engine re-scores real historical bars it has never trained on, pools results by risk configuration, and adjusts each voice by what actually worked out-of-sample. Every decision is journaled with its full ballot: who voted, at what strength, with what earned weight, in what regime. The "Why this trade" panel isn't a summary — it's the receipt.
Paper or live, the model charges 0.25% taker fee + 0.02% modeled slippage per side. Before entering, the engine computes the full round-trip cost at the intended size and refuses any trade whose target can't clear it — out loud, in the narration. On the position card, every if-hit number is shown net of ALL fees. "Up $2 but you'd lose money selling" is displayed as exactly that.
Every account starts on a $1,000,000 practice balance against real live prices — busted practice accounts refill free, without limit. Real money requires every lock below, checked server-side at trade time, fail-closed: miss any one and the engine trades paper. And the business model is a flat subscription — a platform paid a percentage of profits is quietly rewarded when you overtrade. We refuse the incentive.
Our status page is public — feed health, worker load, datastore latencies, data freshness and the incident history, visible without an account. Under load the platform sheds gracefully: slow scans stretch first, hot cadences clamp second, new engine starts queue third — and an engine holding positions is never throttled. We target 99.9% availability with graceful degradation. We will never promise 100%, because nobody can.
Full platform, real live data, a $1,000,000 practice account. Watch it think for ten minutes and decide for yourself — no card, no trial clock.