Local Dev Setup
:::info Source
Sourced from services/marketplace-service/LOCAL_DEV_SETUP.md in the documentation repo.
:::
1. Prerequisites
Node 20, pnpm 9, Docker 24.
2. Quick Start
cd services/marketplace-service
cp .env.example .env.local
pnpm install
docker compose -f docker-compose.dev.yml up -d
pnpm db:migrate
pnpm seed
pnpm dev # :3110
pnpm dev:saga
3. Dependencies
| Service | Port |
|---|---|
| postgres | 5432 |
| redis | 6379 |
| nats | 4222 |
| billing-service (mock) | 3120 |
| enrollment-service (mock) | 3055 |
| catalog-service (mock) | 3070 |
| notification-service (mock) | 3130 |
| ai-gateway-mock | 3020 |
| kyc-provider-mock | 3140 |
4. Environment
PORT=3110
DATABASE_URL=postgres://marketplace:marketplace@localhost:5432/marketplace
REDIS_URL=redis://localhost:6379/110
NATS_URL=nats://localhost:4222
NATS_STREAM=MARKETPLACE
BILLING_SERVICE_URL=http://localhost:3120
ENROLLMENT_SERVICE_URL=http://localhost:3055
CATALOG_SERVICE_URL=http://localhost:3070
AI_GATEWAY_URL=http://localhost:3020
KYC_PROVIDER_URL=http://localhost:3140
PLATFORM_REVENUE_SHARE_BPS=1500 # 15.00%
PURCHASE_SAGA_TIMEOUT_MS=1800000 # 30 min
LISTING_APPROVAL_SLA_HOURS=24
5. Seed Data
- 3 provider tenants with 10+ listings (active, pending, suspended).
- 5 sample orders (placed, paid, fulfilled, refunded, failed).
- 3 coupons (valid, expired, max-used).
- 2 active subscriptions.
6. Commands
pnpm dev
pnpm test
pnpm test:integration
pnpm test:saga:purchase
pnpm test:saga:refund
pnpm saga:trace <sagaId>
pnpm listing:submit <listingId>
pnpm order:place --buyer <u> --listing <l>
pnpm openapi:check
7. Debugging
pnpm saga:inspect <sagaId>— shows state transitions + timestamps.pnpm listing:search --q "..."— full-text + faceted.- Mock billing returns deterministic payment outcomes based on amount (e.g., $13.37 = always fails).