This case study is a composite. The architectural decisions, latency numbers, and outage scenario are drawn from real customer deployments, but the customer's identity is intentionally not disclosed. The pattern is the one any contract manufacturer with three or more production lines and intermittent WAN can copy.
The setup
A contract manufacturer operating 12 production lines across two buildings. Mixed packaging product: serialized unit-level labels for the regulated SKUs, batch carton labels for the rest. Roughly 380,000 labels per month, peak day around 22,000. The ERP is on-prem. The MES is on-prem. The SCADA is on-prem. The WAN connection is a single 200 Mbps fiber link plus an LTE backup that the carrier insists is real but which has, in measured terms, a 3.5-second cut-over and an SLA the plant has stopped trusting.
The plant's old setup: a desktop label-printing application on a Windows PC per line, six "audit databases" of which three had silently corrupted, no integration with the ERP except a CSV drop that an operator clicked through every shift. Cost of an audit was three days of forensics. Cost of a missed serialization event was a contained-batch recall.
The rollout — three protocols, one node per line
The team chose to deploy a LabelInn Edge node per line (12 nodes total, plus a thirteenth for the QA office). Each node was a small industrial PC running Windows IoT, located in the line's existing electrical cabinet. The deployment took two engineers a week.
Each integration on the floor uses the protocol that fits its native posture:
- ERP → Edge: REST. The ERP team integrated against the local
/local/v1/print/jobsendpoint with their existing HTTP client. End-of-shift work-order completion fires a batch of label submissions. Average latency on the call: 38 ms. The integration build was a half-day on the ERP side. - Robot cell → Edge: gRPC. Two of the 12 lines have robotic pick-and-place cells. The robot controllers' Linux side-cars hold a typed gRPC client. Server-streaming
StreamEventsdrives the hand-off arbitration: the robot does not release the part to the downstream conveyor until the corresponding label event reportscompleted. Latency budget the robot has on this: 200 ms. Latency measured: 60-90 ms typical, 140 ms 99th percentile. - SCADA → Edge: MQTT. The Ignition Perspective HMI on the production floor subscribes to
labelinn/printer/error,labelinn/printer/supply, andlabelinn/print/job_failedon the plant's existing Mosquitto broker. The Quality dashboard subscribes tolabelinn/verify/passedandlabelinn/verify/failedto maintain a live verification rate. The MES publishes inbound commands tolabelinn/cmd/printas part of its work-order execution flow.
Cross-cutting: mDNS peer discovery means none of these integrations holds a hard-coded IP for an edge node. New lines join the mesh by joining the LAN.
Before-and-after on the operator-visible latency
| Path | Before (cloud-only desktop) | After (Edge) |
|---|---|---|
| ERP work-order completion → first label engaged | 10–20 seconds (operator clicks through CSV) | ~3 seconds (work-order step fires, edge prints immediately) |
| Per-label print latency (line at one unit/sec) | Couldn't sustain — CSV import bottleneck | 30–80 ms end-to-end |
| Robot-cell label confirmation | Not integrated — manual scan check | 60–90 ms via gRPC stream |
| Quality dashboard "labels printed this hour" | End-of-shift CSV pull | Real-time via MQTT |
The fifteen-minute WAN outage on a Tuesday
Three weeks after the rollout, on a Tuesday afternoon, the carrier's BGP flapped. The plant's 200 Mbps fiber went unreachable. The LTE backup attempted to take over, but the fail-over timer ran longer than the carrier's own SLA — total measured outage was 14 minutes 47 seconds.
During the outage:
- The ERP, MES, SCADA, and edge nodes all continued to talk on the LAN — they were never dependent on the WAN for their floor-level operation. Work orders flowed, prints fired, scans verified.
- Each edge node accepted incoming jobs, printed, and recorded the regulated events into its local append-only outbox. Every event got a per-tenant HMAC signature stamped at the moment of generation, exactly as it does when the WAN is up.
- The cloud audit chain, the dashboards behind it, and the cloud-side MES integrations were unreachable from the corporate network — but nothing on the floor noticed.
- At T+14:47, the WAN restored. Every edge node began draining its outbox to the cloud. The drain finished within 38 seconds. The cloud audit chain received the events in their original generation order and verified the signatures on each.
412 labels were produced during the outage. The Quality team's daily chain-verification report showed all 412 entries present, all signatures valid, all in correct generation order, with the origin: edge tag and the resync timestamp recorded. From the auditor's perspective, the outage looked like fifteen minutes of normal operation.
The Quality Manager's exact reaction, when shown the dashboard the next morning: "This is the first time a WAN outage has not been my problem."
What this means for procurement
A label-printing platform purchase used to be a choice between two failure modes: lose offline tolerance to gain audit quality (cloud SaaS) or lose audit quality to gain offline tolerance (on-prem desktop). The Edge Stack closes that choice. Customers get:
- Cloud-grade audit and compliance evidence (hash chain, HMAC, per-element capture, evidence-pack PDF export)
- LAN-grade execution latency (sub-100 ms typical)
- Offline tolerance with verified post-outage audit continuity
- Three protocols on one node, so every system on the floor talks to the printer in its native language
The shape of the deal a procurement team evaluates is no longer "which compromise do we accept" but "how soon can we deploy this."
Bring the Same Architecture to Your Plant
If your plant has been living with the offline-vs-audit trade-off, the Edge Stack is the conversation to have. We'll do the network review with your IT team before signing anything.
Book the architecture review →