Microservices Migration Strategy for Shopify Public App
- Introduction
We are developing a Shopify public app built using the Shopify Remix app template, fully integrated with the Shopify ecosystem. Our goal is to transition to a microservices architecture to improve scalability, deployment efficiency, and performance while ensuring independent functionality of core components.
- Current Tech Stack
Shopify-Specific Technologies (Remix App Template)
- Remix: Modern React-based framework for full-stack Shopify apps.
- Shopify App Remix: Handles authentication and Shopify API interactions.
- Shopify App Bridge: Integrates with Shopify Admin.
- Polaris React: Design system for consistent Shopify-aligned UI/UX.
- Webhooks: Subscribed to real-time Shopify store events.
GitHub Repository for Shopify Remix App Template:
Shopify Remix App Template
Backend & CI/CD Infrastructure
- Language: JavaScript
- Hosting: AWS (Amazon Web Services)
- Deployment: Kubernetes (K8S)
- Containerization: Docker (ECR Containers)
- CI/CD Automation: GitHub Actions
- Database: MongoDB
- CI/CD & Deployment Workflow
Current CI/CD Setup
- Two environments: Development and Production.
- GitHub Actions automates builds, ECR container updates, and Kubernetes deployments.
- K8S linked to the app’s primary domain; changes propagate automatically.
Monolithic Structure:
- Frontend and backend operate on the same server (as per Remix template).
- Codebase is logically separated into frontend/backend directories for developer clarity.
- Key Questions
- Can a Shopify Remix-based app adopt a fully microservices architecture without breaking Shopify API integrations?
- What strategies are recommended for decomposing a monolithic Shopify app into microservices while maintaining seamless API interactions?
- How can AWS-based microservices deployments be managed independently without destabilizing the app?
- Are AWS Lambda, SQS, or SQS/SNS practical for enabling event-driven workflows in this context?
- What CI/CD pipeline best practices apply to AWS-hosted microservices for Shopify apps?
- Are there examples or lessons learned from similar migrations that could guide this process?