011010011100011010111111 111100000011111110101011 111110010010101000000011 100001001110010000110111 011100000011011010001010 101100000101111011000000 001000111010111111111100 100010111001000111010111 110111101011010011010110 010000001000110010001101 111111010111101010111000 111000010100010110101001 111000010011111110110011 011000110101000001110101 101101111000010100010010 011111010010001001011010 100011100011010110101110 001011000101001001110101 111111011000000011100111 011000100101110110011000 111101110010110010110100 110111001010011101001110 010100000000110011011100 111110010110001111000001 000000110111100011011010 001001010100011101001000 001110011001000011111101 110110111011100101011111 010011011101001001011011 110110111001001000111110 011100010011110001011000 110110001001101011100101 111010100001100011110001 010101110011100011101111 011110010101000000000000 101110110100001010010000 001110110111111010001010 000100110110011001110101 101001111110100110101101 110110100001100001110001 011100011001111011000001 010110000000111000111000 000100101111110010110110 011110001101011000111011 001110011110100111011110 010111010011101101110000 110000110111011101001011 100101100000100000110111 101011100111001001000100 111111101000010111000001 100011011000111011111100 111001011010010011100001 101000010110010101011101 100101010010010100011100 000100000001010110111100 110101110110000011011110 000100010101111100100001 010010101100111100100111 101011101011110110001110 111110111100000010000010 000010111101101000101000 100000011000110101100010 110110011111011000101100 100001000110010001100110 001111110010010011111111 100011101100011110111111 101000100001011001001110 110101011011101101011111 001101011000110111110000 010100000111100011111101 100001011110111010010111 111011111010000110001011 100101001011000000110110 101111101100001100111101 110110100010010011101111 100000000111011011101110 010100001010000010110001 011100110011111001111001 100010001110100010101001 000000011000101001011111 001110100001110111001010 110100001001001000100101 110011011110110111111110 011001111011000101010001 100011110010001001010011 100001101111000111101010 010001010011111111111011 000101000100100011010101 111101011100011101110110 110000001000111001001010 001110010111010011001000 100101111100101010100111 001010101011011010011100 111011111101101001110011 110011011001001111011000 010000111100001100110010 000010101010110001010000 100100101111011111110011 010111000010111100011001 111100000111001011111100 111111100111101000101101 100100100101100110111101 001000011100011110101010 100010010101010100010010 001010000001000001101001 110010110010010100000111 100101001010001010110011 100010100111011000101001 101010100110101000100100 100011000001001111001010 011000011010010010001111 110011111011110011010111 001110111100001011101011 001001100001101101010011 011001111001110011101100 110110011111110101110001 000110111001011101011111 100001101100111011000101 011101110101101011111000 001011001010011100010010 101111100110011010100111 110100001100011000101000 010010100011111010011000 001001100001001010110100 011000000110010000111101 110010001010110101111100 001111010110101101000110 010001001000110010110001
StateVec · Built for core business transactions
A verifiable business engine
for core transactions Define your model.
Write your business logic.
Run business rules as deterministic plugins, with ACID transactions, replication and verifiable recovery. StateVec provides high performance, strong consistency, and built-in resilience.
01 /
ACID for core business transactions
A business transaction rarely changes just one record. A transfer may debit an account, credit another, charge a fee and consume a limit. StateVec keeps these changes in one ACID transaction: every related update succeeds together, or none takes effect.
Your plugin defines the data model and the rules that accept or reject each command. The engine provides atomic updates, serializable execution and durable recovery across the cluster. Both execution modes share this foundation; Verify mode adds replica execution checks before commit.
Atomicity
Every change a command makes is applied together or not at all. Commands run against an overlay of committed state; a business rejection leaves all records unchanged and still keeps its place in the order.
Consistency
Requests are checked against the typed data model before execution, and deterministic rules give every replica the same result from the same input. Verify mode confirms replica agreement before commit; declarative business-invariant checks are in development.
Isolation
Commands execute one at a time in a single global order fixed by the log. Each command sees every earlier committed command and none of the later ones, giving serializable isolation.
Durability
A command commits only after a quorum of voters has persisted it with the required disk syncs. After a crash, a node restores a selected checkpoint and replays the committed log.
02 /
Business scenarios
Build applications where balances, positions, limits or inventory must stay in agreement. StateVec fits well-defined business rules, bounded core state and short, deterministic operations that can be replayed during recovery.
FINANCIAL CORE
Core financial transactions
Build spot and margin trading for exchanges and brokers, with application-defined order checks and position rules. Validate available funds and update order, position and balance records in the same command.
Orders, positions and funds move together as one atomic business transaction.
ACCOUNTING
Ledgers, balances and settlement
Post debits and credits, update balances and advance settlement state in one ACID transaction. Define explicit rejection rules for insufficient funds or invalid account transitions.
Handlers keep debits and credits balanced, with no one-sided entries. External settlement uses an integration protocol.
BILLING & LIMITS
Real-time billing, limits and credits
Process usage events, apply pricing rules, check available limits and deduct credits in one transaction. Interpret historical inputs under the rule version that applied when they were processed.
Use request identity in the business rules so a retry cannot charge the same usage twice.
RESERVATION
Ticketing and inventory management
Reserve, confirm and release seats or inventory through explicit commands. Keep available quantities and order status in agreement, with expiry driven by time inputs recorded in transaction order.
Plugin rules prevent the same seat or inventory unit from being assigned to two confirmed orders.
Keep plugins short and deterministic. External calls, long computations and analytics run outside the core. Writes require an available quorum.
04 /
Explore the engine in depth
OverviewStateVec overview
Understand the transaction core: business plugins, ACID execution, replication and recovery.
Read the overview →5-minute guidePlugin contract in 5 minutes
Define records and commands, write deterministic handlers, and test business refusals with the Bank example.
Read the guide →ComparisonStateVec, SpacetimeDB and Aeron Cluster
Compare their transaction models, developer responsibilities, replication and execution verification.
Read the comparison →EvolutionControlled evolution and auditable history
Explore plugin upgrades, historical audit views and business-invariant checks.
Read the article →