Project Awesome project awesome

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.

Package 15.7k stars GitHub

tigerbeetle

TigerBeetle is the financial transactions database designed for mission critical safety and performance to power the next 30 years of OLTP.

Documentation

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.

Back to Billing