An open API service indexing awesome lists of open source software.

https://github.com/formancehq/ledger

A Programmable Core Ledger
https://github.com/formancehq/ledger

ledger

Last synced: about 1 month ago
JSON representation

A Programmable Core Ledger

Awesome Lists containing this project

README

          


ledger

# Formance Ledger

Formance Ledger is a programmable financial core ledger that provides a foundation for all kind of money-moving applications. It provides an atomic multi-postings transactions system, account-based modeling, and is programmable in [numscript](https://docs.formance.com/modules/numscript/introduction), a built-in DSL to model financial transactions.

The ledger can be used either as a standalone micro-service or as part of the [Formance Platform](https://www.formance.com/). It will shine for financial applications requiring a centralized state-keeping of the assets they orchestrate, such as:

* Users balances holding apps, where the ownership of funds held in FBO accounts need to be fine-grained in a ledger
* Digital assets platforms and exchanges, where funds in various denominations are represented
* Payment systems, where funds are cycled through a series of steps from acquiring to payouts
* Loan managment systems, where a sophisticated structure of amounts dues and to be disbursed are orchestrated

Is uses PostgreSQL as its main transactional storage layer and comes with a built-in mechanism to ship ledger logs to replica data stores for OLAP optimized querying.

## Localhost ⚡

To quickly get started using the Formance Ledger on your computer, you can use the local-optimized, all-in-one docker image:

```
docker compose -f examples/standalone/docker-compose.yml up
```

Which will start:
* A Postgres DB
* 1 Gateway Server process (Caddy based reverse proxy)
* 1 Ledger server process
* 1 Ledger worker process
* The Console UI

With the system is up and running, you can now start using the ledger:

```shell
# Create a ledger
http POST :8080/api/ledger/v2/quickstart
# Create a first transaction
http POST :8080/api/ledger/v2/quickstart/transactions postings:='[{"amount":100,"asset":"USD/2","destination":"users:1234","source":"world"}]'
```

And get a visual feedback on the Ledger Console UI started on [http://localhost:3000/formance/localhost?region=localhost](http://localhost:3000/formance/localhost?region=localhost):

![console](https://formance01.b-cdn.net/Github-Attachements/console-screenshot.png)

## Production 🛡️

Production usage of the Formance Ledger is (only) supported through the official k8s [operator](https://github.com/formancehq/operator) deployment mode. Follow the [installation instructions](https://docs.formance.com/build/deployment/operator/installation) to learn more.

## Artifacts 📦

Standalone binary builds can be downloaded from the [releases page](https://github.com/formancehq/ledger/releases).
Container images can be found on the [ghcr registry](https://github.com/formancehq/ledger/pkgs/container/ledger).

## Docs 📚

You can find the exhaustive Formance Platform documentation at [docs.formance.com](https://docs.formance.com).

## Community 💬

If you need help, want to show us what you built or just hang out and chat about ledgers you are more than welcome in our [GitHub Discussions](https://github.com/orgs/formancehq/discussions) - looking forward to see you there!

## Contributing 🛠️

See [CONTRIBUTING.md](./CONTRIBUTING.md)