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.
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!
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.
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
Sign in | Home |
---|---|
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. |
See the Troubleshooting guide for resolving common problems.
See the Development guide to learn how to run and develop this app locally.