Instant transfers
Send money to any NEO account by ID. The saga debits and credits atomically, so a transfer either completes fully or compensates cleanly.
Open an account in minutes, watch your balance update the moment a transfer settles, and send money to any NEO account by ID — all behind bank-grade session security.
A focused set of features that make everyday banking effortless — no feature bloat, no hidden fees.
Send money to any NEO account by ID. The saga debits and credits atomically, so a transfer either completes fully or compensates cleanly.
Argon2id password hashing, RS256 JWT sessions with rotating refresh tokens, and authorisation checks on every account-scoped request.
Your balance and transaction history update the moment the saga confirms a movement — amounts are stored as integer cents, never floats.
Every security-relevant event lands in an append-only audit log inside the owning service's keyspace, correlated end to end.
Go microservices over Kafka and Cassandra — an API gateway, Auth, Account, Transfer, and Transaction services, each owning its own keyspace.
The entire platform — Go microservices, React frontend, Cassandra, Kafka, Docker Compose, and Terraform — is on GitHub.
NEO Bank denies by default: every protected endpoint validates a JWT, every account-scoped query is authorised against verified ownership, and cross-account access returns 404 rather than leaking existence.
From signup to a settled transfer in three steps.
Open an account in minutes. Credentials are hashed with Argon2id and sessions run on rotating RS256 JWT refresh tokens.
app.neo.bank/register
Enter a recipient account ID and amount. The Transfer Service orchestrates a saga over Kafka: debit and credit commands go to the Account Service.
POST /api/v1/transfers
Cassandra lightweight transactions apply the balance changes atomically. Failures trigger compensation, and every step is idempotent.
balance updated · audit logged
Copy .env.example to .env, fill in the JWT keys, and bring the whole stack up with Docker Compose — gateway, four Go services, Cassandra, Kafka, and the React frontend.
$ git clone https://github.com/hieudoanm/neo.bank
$ cd neo.bank
$ cp .env.example .env # fill in JWT keys
$ docker compose up --build
frontend → :3000 · api gateway → :8080
NEO Bank is a software demonstration — synthetic data, no real money. See the README for the full stack overview.