Microservices Architecture for a Shopify Public App

Microservices Migration Strategy for Shopify Public App

  1. 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.

  1. 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.
    :link: 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
  1. 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.
  1. 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?