Probien is a project with the initial purpose of being a monolith and once finished, it will be split into a microservice architecture using GRPC or RabbitMQ with event driven architecture
What did you learn while building this project? What challenges did you face and how did you overcome them? First, I had no idea how to structure the project, I come from java and have always used the MVC pattern to build services, then I decided to learn another type of desing so I create this project with domain based approach (DDD) and ports & adapters (Recomendations are welcome).
Submit a pull request for discussion
-
Phase 1 (Core service - Monolith)
- JWT & SessionID Authentication ✔️
- Authorization Based on Roles ✔️
- Database logs ✔️
- Transaction | CRUD Operations ✔️
- HTTP Tests ✔️
-
Phase 2 (Microservices)
-
Refactor bussiness logic (optional if not needed) ➖
-
System design 🕞
-
Discovery service 🕞
-
API gateway 🕞
-
Authentication service (keycloak or common RBAC database roles) 🕞
-
Pawn shop service 🕞
-
Payment service 🕞
-
Employee service 🕞
-
Client service 🕞
-
Inventory service 🕞
-
Log service 🕞
-
E-mail/sms notification service 🕞
-
-
Phase 3
- Start frontend: ➖
- (Microfrontend 1) Landing page (Nuxt js) ➖
- (Microfrontend 2) Administration app (any js framework) ➖
- Start frontend: ➖
-
Proposals
- (New microservice) Reports By Pawn Shop Branch ➖
- (New microservice) Add employee payments ➖
- Mobile App for customers ➖
