Lock-free reads at scale.
StaxDB serves every read without a lock, in both the index and storage. Read throughput grows with every core you add, even under heavy writes.
Jets
Built into every app
Jets
Built into every app
Every figure is a measured benchmark on named hardware, against the rival named beside it.
The command, the commit and the machine of every benchmark are on staxdb.com/performance.
From memory allocation to SQL and vector search, StaxDB's layers are designed to work together, and each one speeds up the layer above it.
A traditional database sits at the far end of a network connection. Every query string is parsed, pages are locked, and rows are copied between processes. StaxDB removes those layers and runs your code directly on the stored record.
StaxDB serves every read without a lock, in both the index and storage. Read throughput grows with every core you add, even under heavy writes.
Log-structured engines write your data over and over: to the log, to sorted files, and again during every compaction. StaxDB writes each record once, in place, so your full disk bandwidth goes to your workload instead of housekeeping.
StaxDB stores objects in the same form your code uses. Every field is a single jump away, and there is nothing to pack or unpack.
TurboAlloc's memory is the database file itself. When the server restarts, there is nothing to rebuild and nothing to replay.
Data, functions, users, realtime, files, search, ledger, sites and versions run on the same engine. One key reaches all of it over HTTP, MCP, the CLI and the JS SDK.
Every document collection is also a SQL table, so you can query your JSON with SQL.
TurboCore, TurboSQLRun JavaScript right beside your data for triggers, validation, and complex updates, with no network in between.
TurboJSSign-in, roles and permissions belong to the platform and are decided before your code runs.
SubstrioPub/sub and live sync stream each change to the clients watching it.
SubstrioFiles and media are stored beside the records that name them, in the app’s own storage.
SubstrioRun semantic search, RAG retrieval, and geo queries right beside your transactional data.
TurboVectorMoney is a platform service: each balance is kept as it changes and read in one load.
SubstrioYour site is served by the same binary, with its own TLS certificates and your domains.
SubstrioEvery app has one history: branches, commits, promote and rollback.
SubstrioEvery app gets a separate database file, a separate JavaScript heap and a fixed memory budget. There is no shared table and no tenant filter to forget.
Each app's database file is opened only for that app. No shared table with a tenant column exists, so no missed filter can leak a row.
Each app's functions are executed in a separate JavaScriptCore context group, with a separate heap and garbage collector. There is no direct call path from one app's code into another's.
An app's heaps are reserved against one budget before they exist, and native bytes are charged to that budget where they are allocated. A call past the budget fails with a typed error, and a neighbour's share is never touched.
Each command line tool bundled with an app is executed as a separate process, its memory walled off by the CPU's page tables, behind eleven kernel walls.
Before any configuration or key is read, one small launcher process for tools is started, then the server process is locked down by Landlock for good: no program can be run from it, and no other process can be traced or read from it. If the lockdown fails, startup is aborted.
TurboAlloc reuses a slot only after every read of it has finished, so no read is ever served memory freed mid-read.
Many databases that claim to be built from scratch still sit on standard allocators and borrowed storage engines whose internals are public and well studied.
Every app on Substrio runs on StaxDB from its first deploy.