Conclusions 🎉
Position Pal was a valuable learning experience in applying modern development practices in a real world scenario.
By utilizing Domain-Driven Design, the team gained a clearer understanding of the domain, which helped in the design and development phases of the whole system.
The incorporation of DevOps practices contributed to a more streamlined and predictable development process, while Kubernetes provided a powerful environment for managing deployments.
Overall, the project served as a modest yet effective exploration of building reliable microservices for creating a safe network among friends, with plenty of lessons learned along the way, including:
- real-time communication;
- distributed event-driven architecture design and implementation;
- advanced DVCS workflows and CI/CD pipelines;
- Kubernetes deployment and management;
- Domain-Driven Design and Clean Architecture principles;
- gRPC and REST API design and implementation;
- Event Sourcing and CQRS patterns;
- End to end and integration testing.
Future works
In the future, we plan to improve the system by adding new features and enhancing existing ones. Some of the planned improvements include:
- User Interface improvements
- better user experience;
- native mobile App support.
- User service:
- add group roles;
- RBA (Role-Based Access Control) system.
- Chat service:
- add XMPP protocol support;
- improve notification system.
- Location service:
- improve websocket connection management avoiding to create one connection per group;
- add more alert conditions to notify users about dangerous situations in addition to those already existing, like deviation from the route;
- Notification service:
- add email notification support.
Acknowledgements
Giovanni Antonioni @giovaz94 • Valerio Di Zio @v4l3rio • Luca Tassinari @tassiluca