Skip to content
HelalStart a project

Multi-store commerce platform

Several storefronts had to share one stock pool and one order process.

Client
Independent project
Service
Custom platforms & apps
Status
Live

01 / Build

What I built

Custom TypeScript platform with queues, order verification and courier integration.

02 / Decisions

Key decisions

03 / Notes

Architecture and hindsight

Architecture

Each storefront is a Next.js front end on the same Fastify API, written in TypeScript end to end. PostgreSQL holds products, stock and orders for every store. When an order is placed, the API reserves stock and writes the order in one transaction, then hands verification, courier booking and customer messages to BullMQ workers. Failed jobs retry on their own and stay visible until they succeed.

What I'd do differently

Add an outbox table between orders and the queue from the start. Writing the job to the database in the same transaction as the order, then moving it to Redis, means a job can never be lost between the commit and the queue.

04 / Outcome

Outcome

Live in production; several storefronts sell from one stock pool through one order process.

Have a problem like this one?

Start a projectMore work