For Zigbee support, Device Service requires a separate runtime program that implements an abstraction library called zhal. Currently Barton provides a program called ZigbeeCore which implements zhal for Silicon Labs efr32 devices
If Device Service is built with Zigbee support there should be an implementation of ZHAL, which is the Zigbee Hardware Abstraction Layer. The intent of ZHAL is to enable portability to different Zigbee stack and silicon vendors
Fimware Management
when a new firmware image is available for a device, the Device Descriptor List (aka whitelist/allowlist) is updated with the new firmware version number and filename
When this updated list is published and provided to Barton it is scanned for descriptors matching paired devices
If a paired device needs an upgrade its file is downloaded from the content server.
Device communication watchdog
Device Service has a component that is responsible for detecting communication failure with the devices it manages
Once the Device Communication Watchdog determines that a device is in communication failure, the device's communicationFailure resource (/000d6f000f486af8/r/communicationFailure from the example device earlier) is set to "true"
This triggers a resource changed event
Database
Device Service stores all of its configuration in individual files