Production-grade ecommerce backend built as a distributed microservices system. Services include API Gateway, Auth, Product, Order, Payment, Notification, Invoice, and File Storage. Key engineering decisions: 1. Designed an asynchronous event-driven architecture with RabbitMQ. Payment intent creation, invoice generation, and email notifications run independently of the request lifecycle, allowing core business operations to complete without waiting on external services. Stripe payment intents are typically generated before the user reaches checkout. 2. Implemented the Sidecar Pattern for payment processing. A dedicated worker consumes order events and handles all Stripe interactions independently of the Order Service. 3. Rebuilt the Invoice Service in Go after the initial Node.js implementation. Processing a backlog of 10,000 invoices through RabbitMQ improved from 1 minute 47 seconds to 2.43 seconds using goroutines. 4. Validated RabbitMQ durability by publishing 10,000 events while consumers were offline. All messages were successfully processed after service recovery with zero message loss. 5. Applied the Database-per-Service pattern, ensuring each service owned its own data and eliminating cross-service database dependencies. 6. Built and deployed the infrastructure from scratch using Nginx, Docker, Kubernetes manifests, and SSH-based deployment on a self-configured VM. 7. Integrated Stripe payments, S3-compatible object storage, Redis caching, and RabbitMQ eventing throughout the platform. Stack Node.js · Go · Next.js · PostgreSQL · RabbitMQ · Redis · Docker · Kubernetes · Nginx · Stripe · S3 GITHUB - https://github.com/tomarrohitt/e-commerce Live - https://rohit-ecommerce-microservice.dedyn.io