Article by:
Date Published:
Last Modified:
This page is in notes format, and may not be of the same quality as other pages on this site.

What Is A Device Shadow?

AWS introduces the concept of a device shadow A device shadow is a virtual, persistent copy of a embedded devices state which is stored in the cloud. The device shadow can be interacted with from IoT Core whether or not the actual device is connected or not. The devices shadow is represented as a JSON document. You can think of the device shadow as a cache of the device state which prevents the disruption of missed communications when the actual device goes temporarily offline, usually due to unstable internet connectivity (other services can still read/write to the shadowed device state). The actual device, when online, can get/update/delete it’s latest state as well as receive notifications when the state changes.

AWS Jobs

Jobs can be sent to devices using any of the following three protocols:

  • MQTT
  • HTTP

AWS IoT Device SDK For Embedded C (C-SDK)

The AWS IoT Device SDK For Embedded C (commonly shortened to C-SDK) that you can use/run on embedded devices to turn them into AWS IoT nodes that can connect to the AWS IoT Core. It is written in standard C and contains the following components:

  • coreMQTT
  • coreHTTP
  • coreJSON
  • corePKCS11
  • AWS IoT Device Shadow
  • AWS IoT Jobs
  • AWS IoT Device Defender
  • AWS IoT Over-the-air Update
  • AWS IoT Fleet Provisioning
  • AWS SigV4
  • backoffAlgorithm

Most of these components have no dependencies other than the standard C library.


X-CUBE-AWS is a port of the AWS IoT Device SDK to the STM32L4, STM32H7 and STM32WB series of microcontrollers1.


  1. STMicroelectronics. AWS IoT software expansion for STM32Cube (UM2178). Retrieved 2021-08-30, from ↩︎


Geoffrey Hunter

Dude making stuff.

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License .

Related Content


comments powered by Disqus