| Auth portal & admin | Next.js 16 app acting as the OAuth2 authorisation server and admin console for clients, trading partners, adapter configs, and JWT issuance |
| Operations portal | Next.js 16 + React UI for sellers and buyers to browse, confirm, reject, and reconcile PO/DN documents with SSE live updates |
| API service | Node.js + TypeScript on Express 5 exposing submit/update/confirm/reject/cancel/version endpoints with AJV JSON Schema validation |
| Database | MySQL 8 via Prisma 7 — version-history chain, supersession links, Transactional Inbox, dead-letter queue, send logs, scheduler tables |
| Scheduler | MySQL-backed ScheduledJob / JobExecution with distributed locking, driving exponential-backoff retries across restarts |
| DocSendWorker | Outbound dispatcher using the buyer-agnostic DefaultBuyerAdapter with JSON adapterConfig and pdfkit PO PDF generation |
| Logging | Grafana Loki pipeline with a crash-safe file-queue worker and structured logs from every service |
| Deployment | Docker Compose with production Dockerfiles and health checks, install guides for Windows Server 2025 and Ubuntu |