Skip to content

E-commerce polyrepo with git subtrees linking to all microservices

Notifications You must be signed in to change notification settings

propel-gtm/ecommerce-polyrepo

Repository files navigation

E-Commerce Polyrepo

This is the parent repository that links all microservices and infrastructure components as git submodules.

Architecture

This e-commerce platform consists of the following components:

Services

  • be-api-gin: Backend API Gateway built with Go and Gin framework
  • svc-user-django: User service built with Django
  • svc-inventory-rails: Inventory service built with Ruby on Rails
  • svc-listing-spring: Listing service built with Spring Boot

Frontend

  • fe-nextjs: Frontend application built with Next.js

Infrastructure

  • infra-terraform-eks: Infrastructure as Code using Terraform for EKS
  • local-k8s: Local Kubernetes configuration and setup

Shared

  • proto-schemas: Protocol buffer schemas and definitions

Git Submodule Structure

Each component is maintained as an independent repository and linked here as a git submodule:

Getting Started

Clone the repository with all submodules

git clone --recursive https://github.com/propel-gtm/ecommerce-polyrepo.git

Or if you already cloned it without submodules:

git submodule update --init --recursive

Working with Submodules

Update all submodules to latest commits

git submodule update --remote

Update a specific submodule

git submodule update --remote be-api-gin

Pull latest changes from all submodules

git pull --recurse-submodules

Making changes in a submodule

  1. Navigate to the submodule directory:
cd be-api-gin
  1. Make your changes and commit them:
git add .
git commit -m "Your changes"
git push origin main
  1. Update the parent repo to point to the new commit:
cd ..
git add be-api-gin
git commit -m "Update be-api-gin submodule"
git push

Clone a specific submodule only

If you only want to work on a specific component, you can clone its individual repository:

git clone https://github.com/propel-gtm/be-api-gin.git

Benefits of Submodules

  • Independent Development: Each service can be developed, tested, and deployed independently
  • Version Control: Parent repo tracks specific commits of each submodule
  • Flexible Workflows: Work on individual repos or the full system
  • Clean Separation: Clear boundaries between components

About

E-commerce polyrepo with git subtrees linking to all microservices

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •