Secure Banking System
Banking platform on a Hyperledger Fabric ledger, with Kafka-decoupled transaction events and Vault-managed secrets behind OAuth2 Django APIs.
Use case
The problem space.
Process financial operations against a verifiable ledger, with asynchronous enrichment that survives a downstream outage.
What's implemented
Built with intention.
Ledger-backed transactions01
Hyperledger Fabric records authorised state changes while Django APIs coordinate application-level workflows.
Event-driven processing02
Kafka decouples high-volume transaction events from downstream enrichment and notification services.
Defense in depth03
OAuth2, Redis caching, Vault-managed secrets, container deployment, and Prometheus/Grafana support security and operations.
Architecture
Systems in concert.
The primary request and data paths, presented as a compact operating model.
A conceptual architecture for communicating the system design and operational responsibilities.
Step by step
From zero to
running.
Representative local-development commands that show the implementation path and operating sequence.
- 01
Start foundational services
Bring up the ledger network, database, broker, cache, and secret manager for local development.
docker compose up -d postgres redis kafka vault ./network.sh up createChannel - 02
Deploy the chaincode
Package and commit the banking transaction contract to the development channel.
./network.sh deployCC -ccn banking -ccp ../chaincode -ccl go - 03
Run the application API
Configure the Fabric connection profile and apply the Django database migrations.
python manage.py migrate python manage.py runserver - 04
Deploy observability
Install the monitoring stack and verify the transaction and consumer metrics dashboards.
helm upgrade --install monitoring prometheus-community/kube-prometheus-stack
