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 β