Cloud-only dependency
The design assumes upstream services are always reachable and does not prove local capture, safe-state behavior, or replay.
Test the Assumption Hidden by the Boxes
Picture a neat system drawing with a device, a local bridge, and a central service. The arrows look complete. Then the outside link fails and the device has no safe action. The drawing hid an assumption: the central service would always be reachable.
A reference architecture is a shared pattern for dividing system jobs. It helps teams talk, but it is not proof that a design will work. Start by asking which hidden guess could cause the most harm if it were false.
Turn that guess into a test. “The link is usually up” becomes an outage test. Bandwidth means how much data a link can carry in a set time. “The bridge stores data” becomes a full-store and replay test. “Teams share one data form” becomes a change and ownership test. Record the boundary, owner, result, fallback, and reason to test again.
Ask one plain question per arrow. What starts the flow? Who owns it? What can be late? What can be lost? What must be local? What must last? Who sees failure? What is the safe state? Which test proves it? What change opens the review again?
Do not add layers only to make the drawing look complete. Move or split the smallest job that fixes the measured risk.
This first review does not find every weak point. Use Practitioner to build the review record. Use Under the Hood to trace coupling, timing, operations, and failure spread.
A pitfall is easiest to fix when it has a measurement attached. A cloud-only design shows up as bandwidth cost or outage delay. A weak abstraction boundary shows up as broken dashboards after a schema change. A poor gateway plan shows up as battery drain or support tickets.
Use those symptoms as the story. The architecture review should not blame a pattern name; it should trace the missing responsibility, measure the pressure point, and move the smallest boundary that makes the system safer to operate.
Most IoT reference architecture failures are not caused by choosing the wrong diagram. They happen when a diagram hides an untested assumption: cloud reachability, blocking communication, layer coupling, ownership gaps, weak evidence, or operations that appear only after deployment.
Treat the diagram as the starting claim. If a weather station, pump monitor, or building controller depends on the cloud, ask what happens during an outage. If a gateway forwards commands, ask what happens when an acknowledgement arrives late. If a shared data model feeds several teams, ask who owns a schema change. The pitfall is not that these designs are always wrong; the pitfall is approving them before the risky assumption has an owner and a test.
The overview pass should name the weakest assumption in plain language and connect it to a failure that a reviewer can observe. "Usually connected" becomes an outage test. "The gateway buffers" becomes a retention and replay test. "The cloud owns decisions" becomes a local safe-state test. This keeps the pitfall review concrete.
The test result should be tied to the architecture record.
Otherwise the same assumption will return later as an incident, with no clear owner for the original architecture choice.
Before approving diagram as hypothesis, test the depicted proposition in Figure 7.1: Use pitfall review to find weak assumptions before the architecture becomes a rollout dependency. Read from Architecture toward device, data, and app.
Interrogate Architecture first, then find device, data, and app in Figure 7.1. Apply the device, data, and app review question before Review. Those answers support diagram as hypothesis; the figure states: Use pitfall review to find weak assumptions before the architecture becomes a rollout dependency.
The design assumes upstream services are always reachable and does not prove local capture, safe-state behavior, or replay.
Telemetry or commands block unnecessarily because every exchange is treated like request-response control.
Device, gateway, platform, data, and application concerns leak across boundaries without stable contracts.
The architecture names boxes but does not assign owners, tests, traces, or recheck triggers.
Ask which assumption would break the system if it were false. Then require boundary ownership and evidence for that assumption before treating the reference architecture as approved.
A practical pitfall review is a small evidence record, not a long policy document. For each risky assumption, record the affected boundary, the failure behavior, the owner, the mitigation, and the trigger that reopens the decision.
Keep the record close to the flow being reviewed. A cloud dependency record should show capture, retention, replay, duplicate handling, local safe behavior, and dashboard reconciliation. A layer-coupling record should show the interface contract, allowed data fields, owner, version rule, and failure behavior. A synchronous-flow record should say which actor waits, how long it waits, what retries, and what happens when the answer arrives too late.
A checklist alone cannot settle pitfalls to review records. Inspect Figure 7.2 for this relationship: A pitfall record keeps the review anchored in observable behavior and future recheck conditions. Compare Pitfall Review Record with test, trace, inspection.
The diagram Figure 7.2 first names Pitfall Review Record, then separates test, trace, inspection from Assumption. Carry checkpoints test, trace, inspection and Assumption into pitfalls to review records with Pitfall Review Record. Their combined proposition is: A pitfall record keeps the review anchored in observable behavior and future recheck conditions.
Name the claim the architecture depends on, such as continuous connectivity, reliable gateway storage, or a stable data contract.
Identify the layer, interface, data flow, owner, or operating handoff that carries the risk.
Require a test, trace, inspection, rollout record, or support procedure that proves the behavior.
State what change in scale, workflow, data meaning, connectivity, or operations reopens the decision.
Apply these gates by following the risk to the boundary it stresses. Begin with disconnected behavior for cloud dependence, then question unnecessary synchronous waits, expose contracts where layers are coupled, and simplify or combine model lenses only when a real responsibility becomes clearer. Finish with commissioning, recovery, and incident workflows. The ordered route turns each common pitfall into an observable approval condition.
Capture both the exercised failure and the resulting system state. A disconnected test should show local behavior and later replay; an asynchronous redesign should show queue, timeout, and final-result ownership; a contract test should show how version or unit change is contained. Operational proof completes the gate by showing who detects, diagnoses, repairs, and reviews the failure.
A successful demo under normal connectivity does not prove offline behavior, queue replay, schema ownership, local control, or support recovery. The pitfall record should include the failure condition that was exercised.
1Wrong: A local buffer alone makes offline work safe. Separate capture, local action, replay, repair, and ownership.
Under the hood, architecture pitfalls are failures of boundary design. A boundary should say what crosses it, who owns it, how it fails, how it is observed, and how it changes. When those answers are missing, the architecture may still look complete while the system becomes brittle.
The same boundary can fail in several ways. A device-to-gateway boundary can drop a payload, duplicate a payload, strip a quality flag, accept stale data, or hide a calibration state. A gateway-to-cloud boundary can buffer too long, replay in the wrong order, lose ownership of command status, or make the dashboard look fresher than the device state really is. An operations boundary can leave no owner for reset, replacement, incident review, or retest.
Under-the-hood pitfall review therefore follows evidence, not layer labels. It asks whether the receiving side can reject bad input, whether the sending side records what it promised, whether late or repeated messages are visible, whether local behavior remains safe when upstream services fail, and whether a future change will reopen the decision. Those checks make the reference architecture operational instead of decorative.
The result should be a small table of boundary, failure mode, evidence, owner, and recheck trigger. If any column is blank, the architecture still has an unowned pitfall.
That table should travel with the release decision.
It gives operations a concrete place to add new evidence when the site, scale, or workflow changes.
The practical risk in pitfalls are boundary failures needs a diagram. Figure 7.3 summarizes it: Good boundaries separate responsibilities without hiding the contracts that connect them. Look at Coupled Design beside Device Contract.
Map Coupled Design to the current requirement in Figure 7.3. Map Device Contract to the next duty and uses records, not physical details to the later proof. This continues pitfalls are boundary failures: Good boundaries separate responsibilities without hiding the contracts that connect them.
Inspect Figure 7.4 before judging pitfalls are boundary failures; it depicts: Model fit is an engineering judgment: expose the risk without adding layers that no one owns. Focus first on Dominant Risk, then on Record Model Fit.
The diagram Figure 7.4 first names Dominant Risk, then separates Record Model Fit from what must this review. Carry checkpoints Record Model Fit and what must this review into pitfalls are boundary failures with Dominant Risk. Their combined proposition is: Model fit is an engineering judgment: expose the risk without adding layers that no one owns.
Before approving pitfalls are boundary failures, test the depicted proposition in Figure 7.5: Offline-first review separates capture, local decision, replay, reconciliation, and operations evidence responsibilities. Read from Offline-First Buffer Review toward act safely offline.
Interrogate Offline-First Buffer Review first, then find act safely offline in Figure 7.5. Apply the act safely offline review question before owner and recheck. Those answers support pitfalls are boundary failures; the figure states: Offline-first review separates capture, local decision, replay, reconciliation, and operations evidence responsibilities.
For each boundary, check delay, duplication, loss, replay, stale state, invalid schema, unauthorized change, missing owner, and unclear operator recovery. A reference architecture should make these conditions reviewable before deployment.
The recurring lesson is to treat every architecture drawing as a testable hypothesis. Locate the assumption, boundary, and owner first; exercise failure behavior; then record mitigation, evidence, and the trigger that reopens review. The summary below connects cloud dependency, synchronous paths, coupling, rigid model use, and missing operational ownership as different ways an attractive diagram can conceal an unproven system contract.
Use the smallest model that exposes the risk, then add another lens only when it reveals a missing responsibility or flow. More boxes do not repair weak contracts. Evidence from loss, delay, restart, degraded service, maintenance, and recovery is what turns a diagram into a design that implementation and operations teams can safely share.
IoT reference architecture pitfalls are avoided by making assumptions reviewable. If a boundary has no owner, contract, failure behavior, evidence, or recheck trigger, the diagram is not yet ready to guide implementation.
Use these chapters to repair the specific weakness found in the pitfall review. The models introduction supplies boundary vocabulary, the selection framework turns requirements into a choice, the applications chapter tests adaptation across domains, and the smart-building example demonstrates a complete trace. Carry the recorded assumption and owner into the next chapter so the proposed remedy is checked against the same failure condition.