Skip to main content

Hosted Loop Engine

Better Data’s managed loop engine — run governed, observable commerce-chain loops without operating the runtime yourself.

What is the hosted loop engine?

The hosted loop engine at loops.betterdata.co runs the Better Data loop model as a multi-tenant service. You integrate via APIs and module manifests; Better Data operates scale, isolation, and upgrades. Monorepo services: the running hosted stack includes hosted-loops (runtime + loops database API) and registry-loop (published loop definitions catalog). See Hosted platform apps for how they relate to hosted-gateway-mcp and registry-mcp-server. OSS alternative: @loop-engine/sdk and loopengine.io for self-hosted runtimes.

What you get with hosted

  • Multi-tenant org isolation
  • Outcome-based metering (billing tied to loop completions — contact us for current model details)
  • TenantCapabilitySnapshot-style capability enforcement for RBAC
  • Tamper-evident loop audit trail and export paths for compliance workflows
  • Drift detection (scheduled validation of expected vs observed state)
  • Outbox relay for cross-module event delivery
  • Industry Pack policy overlays (hosted-only; not published as OSS)

Pricing model

Hosted Loop Engine pricing is outcome-based (per loop completion, not per seat).
Contact hello@betterdata.co for current packaging and terms.

Loop types (canonical)

LoopModuleWhat it governs
scm.procurementSCMAI-assisted PO recommendation + human approval gates
scm.fulfillmentSCMMulti-step order fulfillment
scm.qualitySCMInspection, deviation, CAPA-style disposition
scm.replenishmentSCMDemand signal → reorder / replenishment
dcm.demandDCMDemand signal detection and replenishment triggers
dcm.orderDCMChannel order routing and lifecycle
dcm.returnsDCMReturn authorization and reverse logistics
See also Loops for the conceptual model.

Runtime HTTP API (hosted-loops)

These routes are implemented under apps/hosted-loops/app/api/ in bd-forge-main (@repo/hosted-loops). Production host / base URL mapping (e.g. loops.betterdata.co) is an implementation detail pending verification.
PrefixPurpose (high level)
/api/v1/loopsList/create loop concerns; /api/v1/loops/catalog, /api/v1/loops/[id], /[id]/start, /[id]/transition, /[id]/cancel, /[id]/events, /[id]/history, /[id]/google/* integrations
/api/v1/loops/runsRuns: runs/[runId], runs/compare
/api/v1/loops/definitionsdefinitions/[loopId]/runs
/api/v1/baselinesBaselines CRUD, /[id]/transition, /[id]/true-ups, delivery routes
/api/v1/connectors/*Connector health and Slack/Google OAuth + events (/connectors/slack/events, etc.)
Handlers use JWT-style authenticate in route modules (see e.g. apps/hosted-loops/app/api/v1/loops/[id]/transition/route.ts). Exact auth header contract and tenancy claimsimplementation detail pending verification (read apps/hosted-loops/lib/auth when documenting publicly).

Getting started

OSS vs hosted

OSS (@loop-engine/sdk)Hosted (loops.betterdata.co)
CostFree (OSS)Per agreement — contact us
SetupYou operateNo infrastructure setup
Multi-tenantNoYes
Industry PacksNoYes
Audit / compliance exportsYour pipelinesPlatform aggregation + reports
SLASelf-managedBetter Data SLA