Microservices to manage Accounts
and Transactions
between multiple accounts.
Warning
This project is for demo purposes only. Don't use it in production environments.
- Users can create accounts via the API.
- Users can create transactions via the API.
- The
Accounts
service detects newly created transactions and transfers funds accordingly. - The
Transactions
service detects fund transfers and updates transaction statuses. - Users can view their account balances and transaction results via the API.
This project stands on shoulders of:
- Sanic: For RESTFull API.
- petisco: For clean applications and dependency injection.
- meiga: For monad-based result type.
- Beanie: For map MongoDB documents to Python objects (ODM).
- pika: For RabbitMQ connections on
petisco
.
Clone repository and use Docker
with docker-compose
to build and run images.
- Clone repository
git clone git@github.com:lucaslucyk/tach-challenge.git
-
Check
.env
files. -
Start containers with
docker-compose
.
docker-compose up -d
-
Start dependencies services:
RabbitMQ
MongoDB
-
Check
.env
files. -
Start apps with poetry:
poetry run python accounts/main.py
poetry run python transactions/main.py
Coming soon.
This project is licensed under the terms of the MIT license.
Made with ❤️ and 🧉