This is a generic wallet service. It's designed to be used as a core service in a hypothetical fintech startup. Wallet provides following features:
- Send payment from one account to another.
- See all payments.
- See all accounts.
- It's a domain driven microservice written in golang with go-kit library.
- Service functional available as a RESTful API. See API docs.
- Authentication not supported for simplicity sake.
- Service can be easily auto-scaled, since it's stateless.
- Postgres is used as persistence layer.
- Core business logic covered with tests.
- It uses dep as dependency management tool.
- Download the repo:
git clone https://github.com/gazoon/generic-wallet.git
- Create config.json file in the project root, use config_exemple.json file as an example
- Prepare postgres database and run
postgres/db_schema.sql
script to create db schema and add initial accounts - (Optional) Run test
go test ./...
- Run the server
go run main.go