A educational project that demonstrates a banking system built with a microservice architecture, asynchronous operation processing, and an API Gateway for external integrations.
The main goal of the project is to showcase:
- microservice-based design;
- HTTP & gRPC APIs;
- asynchronous processing with Kafka;
- clean separation of domains;
- Docker-based local infrastructure.
The system simulates basic banking flows such as creating and processing financial operations.
It consists of two core domains:
- Gateway Service — a single entry point for external clients.
- Operations Service — asynchronous processing of banking operations.
Additional services (users, cards, accounts) are used as example downstream services behind the gateway.
- Python 3.12
- FastAPI (HTTP)
- gRPC
- Kafka
- PostgreSQL
- SQLAlchemy (async)
- Alembic
- Docker / Docker Compose
- Docker
- Docker Compose
docker build -t base-service .docker-compose up -d- Gateway HTTP: http://localhost:8001
- Gateway gRPC: localhost:9001
- Operations HTTP: http://localhost:8002
- Operations gRPC: localhost:9002
- Kafka UI: http://localhost:8081
- pgAdmin: http://localhost:5050


