Skip to main content

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​

ClientTalks to
AdminHTTP API for operator modules
Warehouse appSame APIs for pick, pack, manifest, and dispatch. It does not own a second fulfillment engine
Marketplaces and couriersPublic webhook routes and outbound adapter calls
MetaWhatsApp 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​

AreaPathOwns
Identitysrc/modules/identityTenants, users, roles
Commercesrc/modules/commerceCatalog, channels, customers, orders, returns
Operationssrc/modules/operationsWarehouses, stock, procurement, fulfillment, shipping
Financesrc/modules/financeInvoices, settlements, wallet
Automationsrc/modules/automationAI workspace, voice, WhatsApp

AppModule also imports IntegrationsModule.