Software design and implementation > TigerBeetle
A distributed financial accounting database to ensure that the money either moves, or doesn't move, that it doesn't get lost somewhere in between. All features are in the Apache-2.0 OSS repo; TigerBeetle Inc. sells managed hosting and support, not gated features. It has been tested on Jepsen, which tested its strong serializability.
tigerbeetle
TigerBeetle is the financial transactions database designed for mission critical safety and performance to power the next 30 years of OLTP.
Documentation
- https://docs.tigerbeetle.com
- The Primeagen video introduction to our design decisions regarding performance, safety, and debit/credit primitives.
- Redesigning OLTP for a New Order of Magnitude (QCon SF) talk with a deeper dive into TigerBeetle’s local storage engine and global consensus protocol.
- TIGER_STYLE.md, the engineering methodology behind TigerBeetle.
Start
Run a single-replica cluster on Linux (or other platforms):
$ curl -Lo tigerbeetle.zip https://linux.tigerbeetle.com && unzip tigerbeetle.zip
$ ./tigerbeetle version
$ ./tigerbeetle format --cluster=0 --replica=0 --replica-count=1 --development 0_0.tigerbeetle
$ ./tigerbeetle start --addresses=3000 --development 0_0.tigerbeetle
Connect to the cluster and make a transfer:
$ ./tigerbeetle repl --cluster=0 --addresses=3000
> create_accounts id=1 code=10 ledger=700, id=2 code=10 ledger=700;
{
"timestamp": "1761605367595515148",
"status": "tigerbeetle.CreateAccountStatus.created"
}
{
"timestamp": "1761605367595515149",
"status": "tigerbeetle.CreateAccountStatus.created"
}
> create_transfers id=1 debit_account_id=1 credit_account_id=2 amount=10 ledger=700 code=10;
{
"timestamp": "1761605382476666870",
"status": "tigerbeetle.CreateTransferStatus.created"
}
> lookup_accounts id=1, id=2;
{
"id": "1",
"user_data": "0",
"ledger": "700",
"code": "10",
"flags": "",
"debits_pending": "0",
"debits_posted": "10",
"credits_pending": "0",
"credits_posted": "0"
}
{
"id": "2",
"user_data": "0",
"ledger": "700",
"code": "10",
"flags": "",
"debits_pending": "0",
"debits_posted": "0",
"credits_pending": "0",
"credits_posted": "10"
}
Want to learn more? See https://docs.tigerbeetle.com.