bank-of-sirius
bank-of-sirius copied to clipboard
Bank of Sirius
Bank of Sirius
Bank of Sirius is a open source fork of Bank of Anthos. This project improves upon Bank of Anthos by adding additional telemetry, instrumentation, performance tuning, upgraded libraries, and more. The intention is for it to be a more productionized example.
Project
Bank of Sirius is a sample HTTP-based web app that simulates a bank's payment processing network, allowing users to create artificial bank accounts and complete transactions.
If you’re using this app, please ★Star the repository to show your interest!
Important Note
This repository is intended to be used with the NGINX Modern Application Architecture (MARA) project kic-reference-architectures. This includes modifications to the deployment process, as well as the inclusion of OTEL elements that work with the above project.
If you wish to run this outside of the NGINX MARA project you may run into issues, so it is recommended in this case you either fork this project or the original Google Bank of Anthos project.
Release Process
This process is intended to be used for releases that are intended to be used with the NGINX Modern Application Architecture (MARA) project kic-reference-architectures. If you are using a forked version of MARA you will want to examine the GNUMakefile and adjust your repository or other targets as required.
- Set the version:
make version-set. - Update the maven files:
make update-maven-versions - Update the manifest files:
make update-manifest-image-versions - Build the docker images:
make docker-all-images - Push the resulting images to the container registry:
make release
Screenshots
| Sign in | Home |
|---|---|
![]() |
![]() |
Service Architecture

| Service | Language | Description |
|---|---|---|
| frontend | Python | Exposes an HTTP server to serve the website. Contains login page, signup page, and home page. |
| ledger-writer | Java | Accepts and validates incoming transactions before writing them to the ledger. |
| balance-reader | Java | Provides efficient readable cache of user balances, as read from ledger-db. |
| transaction-history | Java | Provides efficient readable cache of past transactions, as read from ledger-db. |
| ledger-db | PostgreSQL | Ledger of all transactions. Option to pre-populate with transactions for demo users. |
| user-service | Python | Manages user accounts and authentication. Signs JWTs used for authentication by other services. |
| contacts | Python | Stores list of other accounts associated with a user. Used for drop down in "Send Payment" and "Deposit" forms. |
| accounts-db | PostgreSQL | Database for user accounts and associated data. Option to pre-populate with demo users. |
| loadgenerator | Python/Locust | Continuously sends requests imitating users to the frontend. Periodically creates new accounts and simulates transactions between them. |
Troubleshooting
See the Troubleshooting guide for resolving common problems.
Development
See the Development guide to learn how to run and develop this app locally.

