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.