openPIM
openPIM is a deployed API and UI for a product information management (PIM) hub. It is an open and free API, designed and developed to share rich product information and serve as a central PIM hub. For more information, visit https://openpim.io/.
Highlights:
- MERN stack: Developed using the MERN stack (MongoDB, Express, React, NodeJS) for its primary API service.
- Architecture: Initially designed as a monolithic application with gradual migration to a micro-service architecture for file processing tasks.
- Communication: Utilizes REST endpoints for file communication and a GraphQL endpoint for other types of communication.
- Containerization: Docker images are created to streamline server initialization and integrate seamlessly into the system's cluster, ensuring efficiency and scalability.
- CI/CD: Deployed using a continuous integration pipeline through GitLab.
- Kubernetes: Deployed in Kubernetes clusters, implementing Horizontal Pod Autoscaler (HPA) and Cluster Autoscalers for a hands-off scalable solution.
- Helm: Uses Helm for Kubernetes package management, ensuring easy updates and rollbacks of deployments.
- Geo-Location Replicas: Designed to scale as a Geo-Location service to tackle latency, including cluster replicas and MongoDB replica sets.
- Servers: The network utilizes AWS clusters, with an additional on-site cluster built from Raspberry Pi 5 devices.