Work
On-Demand Services Marketplace
Seven event-driven NestJS microservices for a bilingual services marketplace: bidding, live tracking, and wallet.
Info
- Client
- Valence Tech · NDA client
- Role
- Backend, AWS deployment, admin panel
- Timeline
- Jul 2026 – present
- Year
- 2026

Overview
A marketplace where customers post jobs and service providers bid on them, negotiate, and do the work. It supports Arabic and English. The client and product are under NDA, so this page describes the engineering only.
My role
At Valence Tech, I designed and built the full backend (seven services and a shared service template), deployed it to AWS, and built the admin frontend in Next.js.
Architecture
Seven NestJS microservices, each with its own PostgreSQL database. They talk over RabbitMQ, with a topic exchange for events and request and reply for RPC. One service issues JWTs and the others only verify them.
An NGINX gateway routes REST and WebSocket traffic to each service. GitHub Actions builds the images and deploys them to AWS.
Solution
A transactional outbox makes sure an event is sent only when its database change commits, and an inbox guard drops duplicate events. Customers and providers negotiate in real time over Socket.IO, and the location service streams live GPS and sends new jobs to providers inside a geofence.
Challenges
Money and messages must never be lost or counted twice. The wallet is an append-only ledger, and every event carries an idempotency key.
Stack
- NestJS
- TypeScript
- RabbitMQ
- PostgreSQL
- Prisma
- Socket.IO
- Docker
- NGINX
- GitHub Actions
- AWS
- Next.js
Next project
ValenceTech
A full redesign and rebuild of the site for a studio that ships web, mobile, and AI products.
View case study