Last 10 years I have been working as mobile developer. But before I was a backend developer for a long while. So very often I have my own opinion about backend architecture and implementation. This project is a my vision about it, I'm developing it for studying, learning new skills and fun. Because I like programming )
This is a 'general' backend for FinTech. For now it has a very base functionality. Only authentification, base profile management and mock accounts. But I'm planning to continue working on this project.
Just clone repository on your local machine. You need Docker for local running and Python 3 for integrating tests.
Install dependencies and rebuild Docker containers
make rebuild
Run application in the Docker
make run
Run integration tests (need Python)
make ptest
Redis for cache (read model), Postgres for storage (write model), RabbitMQ for communicating beetwen workers.
- REST API - cmd/rest/main.go
- Worker - cmd/backend/main.go
- Finish with security/authentificating
- Write perfomance and stress tests
- Deploy Spawn to the Heroku
- Test coverage ~80%
- Notificating worker (emails/pushes for mobile)
- Account manager worker (based on Event Sourcing pattern)
- Trade engine worker
Perhaps, for some new workers I would use other programming language.