IOT design patterns


A device that has a unique identity and connected to a remote host.

Intelligent Thing

A connected thing that has embedded intelligence and connected intelligence (from host) for a specific purpose.

Remote host

A remote host that has the ability to control the thing, process the generated data.


Duplex communication

The thing and the remote host can initiate and communicate to each other.


Things connected to each other via local area network (eg. wifi).

Thing Gateway

Thing use another thing as a gateway to communicate. Example – Wearable watch connected to smartphone via bluetooth and use smartphone internet connection to reach remote server.
Devices which do not support the IP stack will integrate using an IoT Gateway.

Things registry

Field side registry (another thing) in the network which has details on all the connected devices which can serve things about the details and capabilities of others.


Using Containers

Leveraging containers such as Docker to provision a new thing with code and it’s software dependencies. It allows to push updates code updates to the thing.


Design devices to periodically send a heartbeat or a keep-alive signal to the IoT Cloud.

Remote processing host

Endpoint management

Ability to manage endpoint devices remotely.

Device authorisation

Use mechanism such as client certificates for device authorisation.

Device registry

A device registry provides the capability to keep track of all the deployed devices and their co-ordinates.

Shadow object

Provide a state object which mirrors the state of the device.

Message processing host

Stream of data from things generate massive volume of data. Needs distributed message processing system at the host side.

Stream processing

Provide an ability to process data streams in real-time based on set business rules.

Analytics suite

Ability to extract meaningful data, store them into data mart and deliver them to consumers via channels such as dashboard, alerts, etc.

Additional materials

IOT design patterns