Pitfall 1: Treating M2M Like Web Architecture
M2M systems handle millions of devices that send small, frequent messages – fundamentally different from web applications with thousands of users sending large, infrequent requests. Using HTTP REST for all M2M communication wastes bandwidth on headers that can be 10x larger than the payload. Use lightweight protocols like CoAP or MQTT for device communication.
Pitfall 2: Ignoring Offline Scenarios
Many M2M deployments assume always-on connectivity. In reality, cellular connections drop, Wi-Fi goes down, and even wired networks have outages. Always design with a local buffering and store-and-forward strategy. The gateway example above buffers 7 days locally – enough to survive most outages.
Pitfall 3: Flat Device Addressing
Assigning sequential IDs (device_001, device_002) works for 50 devices but fails at 50,000. Use hierarchical naming: {region}/{site}/{device_type}/{device_id} (e.g., eu-west/factory-a/plc/007). This enables topic-based routing, geographic filtering, and access control inheritance.
Pitfall 4: Shared Credentials Across Devices
Using the same API key or password for all devices means one compromised device exposes the entire fleet. Always provision unique per-device credentials (X.509 certificates or unique tokens) during manufacturing.
Pitfall 5: No Message Scheduling
Configuring all devices to report at the same interval without time offsets creates “thundering herd” congestion spikes. ETSI M2M specifically requires staggered scheduling (see ETSI requirements below).