Overview
A multi-vendor SaaS e-commerce platform supporting both B2B bulk ordering and B2C retail flows. The architecture had to handle concurrent shoppers, peak traffic during promotions, and reliable order fulfilment without coupling it to the synchronous request cycle.
RabbitMQ Async Queue Architecture
Order fulfilment and invoice generation are fully decoupled from the HTTP request cycle using RabbitMQ async queues. When a customer places an order, the API responds immediately with an order acknowledgement — the fulfilment pipeline (stock reservation, warehouse notification, invoice generation, email dispatch) runs asynchronously in the background.
This approach means the checkout experience is fast and consistent regardless of downstream processing load. Failed queue jobs are retried with exponential backoff and dead-lettered for manual review if they exceed the retry limit.
Redis Caching
Product catalogue, pricing, and availability data are cached in Redis. Under concurrent shopper load (especially during promotions), this prevents the database from becoming a bottleneck on read-heavy product browsing. Cache invalidation fires on price changes, stock updates, and product edits.
NestJS REST API
The backend is built with NestJS (Node.js + TypeScript), using its module and dependency injection system to keep the codebase well- organised as features grew. REST API endpoints cover product catalogue, cart, checkout, order management, and vendor administration.
Frontend
The storefront is built with React.js and TailwindCSS — responsive, fast-loading product pages with real-time cart state and order status tracking. The vendor admin panel is a separate React application with role-scoped views for product management, order processing, and analytics.
Tech Stack
- Backend: NestJS, Node.js, TypeScript
- Messaging: RabbitMQ (async order processing)
- Cache: Redis
- Frontend: React.js, TailwindCSS