System overview
PointNXT is a modular monolith. One NestJS codebase runs as three processes. It is not a set of independently deployed domain services.
Checked against pnxt-api-nestjs commit b5bd463f on 2026-10-01.
The scheduler enqueues Bull jobs. The worker consumes them and calls external systems. The API also writes outbox rows. Only the worker dispatches those rows.
Clients
| Client | Talks to |
|---|---|
| Admin | HTTP API for operator modules |
| Warehouse app | Same APIs for pick, pack, manifest, and dispatch. It does not own a second fulfillment engine |
| Marketplaces and couriers | Public webhook routes and outbound adapter calls |
| Meta | WhatsApp webhooks and catalog APIs |
Deployment topology of the admin and warehouse apps (CDN, same cluster, separate hosts) is unknown from the API compose file. Admin has netlify.toml and wrangler.json. Warehouse has a native android/ tree.
Persistence and cache
- PostgreSQL via Prisma 7. Schema is a folder:
prisma/schema/*.prisma. - PgBouncer in front of Postgres in Compose. Migrations use
DIRECT_DATABASE_URL. - Redis for Bull and the cache module.
- S3-compatible object storage. Required at boot.
- An OpenAI-compatible AI gateway (Compose service
bifrost). Embedding failures are caught so API boot does not require the gateway to be up.
Request path
URI versioning defaults to v1. A controller can opt out with VERSION_NEUTRAL (health, and voice webhooks).
Areas
| Area | Path | Owns |
|---|---|---|
| Identity | src/modules/identity | Tenants, users, roles |
| Commerce | src/modules/commerce | Catalog, channels, customers, orders, returns |
| Operations | src/modules/operations | Warehouses, stock, procurement, fulfillment, shipping |
| Finance | src/modules/finance | Invoices, settlements, wallet |
| Automation | src/modules/automation | AI workspace, voice, WhatsApp |
AppModule also imports IntegrationsModule.