// technical reference · v1.2How Barmus executes
operational decisions.
This document describes what Barmus is, how it integrates with existing systems, how it makes decisions, and what it guarantees. It is written for technical evaluators and operational leads — not for marketing purposes.
Barmus is a constraint orchestration layer that sits between your order intake system and your operational execution stack. It evaluates constraints, allocates resources, optimizes routes, and resolves customer interactions — in real time, at the API level.
What Barmus is, precisely.
Barmus is a constraint orchestration layer for operational systems. It receives events from your order intake system, evaluates them against a live constraint model, allocates resources, and emits decisions back to your execution stack — all within a single synchronous cycle.
It does not store your operational data permanently. It does not replace your OMS or ERP. It reads state, evaluates constraints, commits decisions, and propagates state changes — then returns control to your systems.
The three modules — Logistics (L1), Connect (L2), Care+ (L3) — are causally coupled: a decision committed at L1 constrains the L2 execution context. A state change at L2 is immediately visible to L3. Each module can be deployed independently, but state propagation only occurs when modules are connected.
Inputs, processing layers, outputs.
The diagram below shows the full data flow — what enters the system, what each layer processes, and what it emits.
What each layer does, precisely.
The allocation engine assigns couriers using a temporal availability matrix scored by proximity (via Google Distance Matrix), current run load, and zone capacity. The same engine validates order modifications — a change request triggers a full re-evaluation of the slot, resource, and delivery chain.
Fleet state is maintained as a live graph of all active nodes: drivers, active runs, and individual delivery states. This graph is the shared state source for both optimization and L3 resolution queries. State changes propagate bidirectionally to L1 (resource availability updates) without polling.
Executable requests (modifications, cancellations) are passed directly to the L1 mutation engine for constraint validation. If the mutation is feasible, it is committed and the customer is notified. If not, the request is rejected with context. Resolution terminates at state change, not at acknowledgment. Cases outside the resolution scope are escalated with a full context package pre-loaded.
How constraints are evaluated and resolved.
Every decision in Barmus follows the same pattern: evaluate → score → commit or reject. There is no fuzzy logic, no silent overcommit, no eventual reconciliation. If a constraint is violated, the request is rejected at the boundary with a reason code.
Override behavior: human operators retain full override capability on any assignment. An override does not bypass constraint logging — it records the override reason and the state delta. The constraint model is not retroactively updated by overrides; overrides are tracked separately as operational exceptions.
Modification re-evaluation: when an order modification is requested, the engine re-runs the full constraint cycle on the new parameters. If the modified slot is feasible, the commit is executed atomically across production, allocation, and delivery layers. If not, the request returns the specific constraint that blocked it.
How Barmus connects to your stack.
Barmus connects at the API and webhook level. It does not require schema changes, data migrations, or platform replacements. Your existing systems continue to operate as before — Barmus layers on top of them.
The integration surface is intentionally minimal: three inbound webhook endpoints and two outbound API surfaces. Everything Barmus needs to evaluate constraints is fetched at request time via these surfaces, not replicated into a separate data store.
| Direction | Endpoint | Payload | Trigger |
|---|---|---|---|
| Inbound | POST /events/order.created |
Order ID, product, address, requested slot | New order placed in OMS |
| Inbound | POST /events/order.modified |
Order ID, modified fields, requested new slot | Customer or ops modifies order |
| Inbound | POST /events/order.cancelled |
Order ID, cancellation reason | Order cancelled, resources released |
| Outbound | GET /slots/availability |
Available slots by product/site/date | Storefront availability query |
| Outbound | GET /delivery/eta/:orderId |
Live ETA derived from fleet graph | Customer-facing ETA request |
Authentication: all endpoints use HMAC-signed webhook payloads (inbound) and bearer token authentication (outbound). Credentials are scoped per deployment and rotated on request.
Deployment time: typical integration takes 4–8 hours of engineering time. The constraint model configuration (capacity rules, resource parameters, zone definitions) is done through a guided onboarding process that typically takes an additional 2–4 hours.
What Barmus guarantees — and what it does not.
This section is important. Barmus makes specific guarantees about system behavior. It also has explicit limitations. Understanding both is required for accurate technical evaluation.
What happens when things go wrong.
Barmus is designed to fail gracefully. Each module is independently resilient — a failure in L3 does not affect L1 or L2 operation. The table below describes the most common failure scenarios and their system behavior.
A full runbook for each failure mode — including monitoring thresholds, escalation contacts, and manual recovery procedures — is provided during onboarding and updated with each module release.
Technical questions not covered here are addressed in the integration scoping call. Our engineering team maps your specific stack and constraint model before any deployment commitment.
Request a technical evaluation See live results →