Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nginxinc/bank-of-sirius
Bank of Sirius
https://github.com/nginxinc/bank-of-sirius
Last synced: about 2 months ago
JSON representation
Bank of Sirius
- Host: GitHub
- URL: https://github.com/nginxinc/bank-of-sirius
- Owner: nginxinc
- License: apache-2.0
- Created: 2021-08-16T23:35:20.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-07-25T21:56:08.000Z (over 1 year ago)
- Last Synced: 2024-04-16T07:51:06.064Z (9 months ago)
- Language: Java
- Size: 5.33 MB
- Stars: 52
- Watchers: 13
- Forks: 15
- Open Issues: 31
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
[![Continuous Integration](https://github.com/nginxinc/bank-of-sirius/actions/workflows/ci.yaml/badge.svg)](https://github.com/nginxinc/bank-of-sirius/actions/workflows/ci.yaml)
# Bank of Sirius
**Bank of Sirius** is a open source fork of [**Bank of Anthos**](https://github.com/GoogleCloudPlatform/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](https://github.com/nginxinc/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](https://github.com/GoogleCloudPlatform/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](https://github.com/nginxinc/kic-reference-architectures). If
you are using a forked version of MARA you will want to examine the [GNUMakefile](./GNUmakefile) and adjust your
repository or other targets as required.1. Set the version: `make version-set`.
2. Update the maven files: `make update-maven-versions`
3. Update the manifest files: `make update-manifest-image-versions`
4. Build the docker images: `make docker-all-images`
5. Push the resulting images to the container registry: `make release`## Screenshots
| Sign in | Home |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| [![Login](./docs/login.png)](./docs/login.png) | [![User Transactions](./docs/transactions.png)](./docs/transactions.png) |## Service Architecture
![Architecture Diagram](./docs/architecture.png)
| Service | Language | Description |
| ------------------------------------------------ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| [frontend](./src/frontend) | Python | Exposes an HTTP server to serve the website. Contains login page, signup page, and home page. |
| [ledger-writer](./src/ledgerwriter) | Java | Accepts and validates incoming transactions before writing them to the ledger. |
| [balance-reader](./src/balancereader) | Java | Provides efficient readable cache of user balances, as read from `ledger-db`. |
| [transaction-history](./src/transactionhistory) | Java | Provides efficient readable cache of past transactions, as read from `ledger-db`. |
| [ledger-db](./src/ledger-db) | PostgreSQL | Ledger of all transactions. Option to pre-populate with transactions for demo users. |
| [user-service](./src/userservice) | Python | Manages user accounts and authentication. Signs JWTs used for authentication by other services. |
| [contacts](./src/contacts) | Python | Stores list of other accounts associated with a user. Used for drop down in "Send Payment" and "Deposit" forms. |
| [accounts-db](./src/accounts-db) | PostgreSQL | Database for user accounts and associated data. Option to pre-populate with demo users. |
| [loadgenerator](./src/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](./docs/troubleshooting.md) for resolving common problems.
## Development
See the [Development guide](./docs/development.md) to learn how to run and develop this app locally.