NAZMUL

EasyShop

Multi-Vendor E-Commerce

Production
2022
Tech
EasyShop
004
Year

2022

Duration

9 months

Team

5 engineers

Role

Tech Lead

High-throughput multi-vendor platform built for scale

Overview

EasyShop is a multi-vendor marketplace platform where independent vendors manage their own product catalogues, pricing, and fulfilment while customers browse a unified storefront. The platform handles the complexity of multi-vendor order splitting — a single cart checkout may involve products from 3 different vendors, each with separate fulfilment and payout logic. Stripe Connect manages vendor payouts with platform commission deducted automatically. Redis caches product listings and search results to handle high read volumes, while Postgres handles all transactional data with strict consistency guarantees. The frontend is a high-performance Next.js storefront with ISR for product pages and client-side cart management.

Key Achievements

Multi-vendor order splitting with per-vendor fulfilment tracking

Stripe Connect integration with automated platform commission deduction

Redis-powered product search with sub-100ms response on 10K+ SKUs

Next.js ISR for product pages — fresh content without full SSR cost

Dynamic pricing rules: bulk discounts, vendor promos, flash sales

Real-time inventory sync with WebSocket notifications for low-stock alerts

Technical Challenges
01
Multi-vendor order splitting

A single customer checkout can contain items from multiple vendors. Splitting, routing, and tracking these sub-orders while presenting a unified order to the customer is complex.

SOLUTION →Designed an Order Splitting Service that decomposes a cart into vendor-scoped sub-orders at checkout. Each sub-order has its own fulfilment lifecycle while the parent order aggregates status for the customer.
02
Inventory consistency under load

Flash sales created race conditions where more items were sold than available stock.

SOLUTION →Used Postgres `SELECT ... FOR UPDATE` to lock inventory rows during purchase, combined with a Redis atomic decrement as a fast pre-check before hitting the database.
03
Search performance at scale

Full-text product search over 10K+ SKUs with filtering, sorting, and relevance was too slow on Postgres alone.

SOLUTION →Added Elasticsearch as a read-side search index, synced from Postgres via a CDC event stream. Search queries hit Elastic, transactional writes go to Postgres.
metrics.json
50+
Vendors
10K+
Products
500+
Orders / Day
<1.2s
Page Load (P95)
78%
Cache Hit Rate
99.4%
Payment Success Rate
Technology

Backend

Node.jsTypeScriptExpressStripe Connect

Database

PostgreSQLRedis (product cache)Elasticsearch

Frontend

Next.js 14 (ISR)React 18TypeScriptZustand

Payments

Stripe ConnectWebhooksPayout automation

Infra

DockerAWS ECSCloudFront CDNRDS
Development Timeline

PHASE 01Platform Architecture

Multi-vendor data modelPayment flow designAPI contractsTech selection