Three applications sit on top of one gateway. The gateway authenticates, rate-limits, logs every call. Underneath: domain services (forecast, replenish, allocation, procure), the LLM orchestration layer, and a shared data plane.
You can write your own application on top of this same API. We do.
| Choice | Why | |
|---|---|---|
| API runtime | NestJS · TypeScript · Node 20 LTS | Strict typing across the stack. Strong DI. Audit-friendly module boundaries. |
| Forecasting | Python · FastAPI · Prophet + custom models | Python remains the right home for ML. The forecast service is independently versioned. |
| Web | React 18 · TypeScript · Vite | Modern. Server-state via React Query. Material-UI primitives, customised heavily. |
| Database | PostgreSQL 16 · Prisma · multi-tenant by row | One schema, tenant_id everywhere, soft-deletes by default. Reviewed in CI. |
| Cache & queue | Redis 7 · BullMQ | Backed by Redis Cluster in production. Idempotent job handlers. |
| Object store | S3-compatible (MinIO in dev · AWS S3 / OVH in prod) | For imports, exports, supplier documents, batch attachments. |
| LLM orchestration | Anthropic Claude · OpenAI · pluggable | Function-calling against our own NL → SQL → action layer. No model lock-in. |
| Observability | OpenTelemetry · Grafana · Loki · Sentry | Trace every cross-service call. Audit log is structured and queryable. |
| CI/CD | GitHub Actions · Docker · Kubernetes | Frozen lockfiles. Reproducible builds. Blue-green deploys. |
Bidirectional connectors for masters, orders, invoices. Idempotent, observable, auditable.
Near-real-time POS ingestion. Sub-15-minute SLA from till to dashboard.
Stock state and movements pulled in nightly or streaming. Lot-level fidelity preserved.
Rate cards, transit windows, capacity. Auto-selection driven by SLA and unit cost.
For Procurement: production execution and laboratory data fed into the audit graph.
Push to your warehouse on your schedule. Schema documented, contract-tested.
SAML 2.0, OIDC, SCIM. SSO is table stakes; we treat it that way.
For the long tail. Bring your own bus, we'll publish and subscribe respectfully.
Annual independent audit. Report available under NDA.
Information security management system, externally certified.
EU data residency. DPA on request. Sub-processor list public.
For Procurement: electronic records and signatures evidence ready.
Computerised systems for regulated CDMOs. Validation pack provided.
Bi-annual external pen tests. Findings remediated transparently.
Forecasts are produced by Prophet and custom seasonal models — deterministic, reproducible, defensible. The same input yields the same output.
The conversational layer uses an LLM, but it does not hallucinate your data. We translate natural language into queries against the same SQL the dashboards run. The LLM's job is interpretation; the database's job is truth.
You can swap the underlying model — Claude, GPT, a local LLama deployment. We don't lock you in, and we don't pretend the model is the magic. The discipline around it is.
We are happy to share the architecture deck, the SOC 2 report, our DPA, our sub-processor list, and to introduce you to the engineers who wrote the code.