Skip to main content

CDF Architecture

CDF is the single integration surface between your app UI and any number of IoT ecosystems. It is SDK-agnostic by design: SDKs plug in through adaptors, CDF owns the entities and stores, and your UI only ever imports CDF types.


Layered architecture overview

CDF is the central hub that connects your app to multiple SDKs. Each SDK has an adaptor that translates its data into CDF entities and operations. Your app only imports CDF types.

Key concepts:

  • Multiple SDKs — Support RainMaker, Matter, RM NG, or add your own
  • One adaptor per SDK — Each adaptor translates its SDK's data to CDF shape
  • Single CDF — All adaptors feed into one unified interface
  • UI imports CDF only — App developers never import SDK types directly

What each layer does

LayerResponsibility
App / UIScreens and components — read stores, call entity methods
StoresObservable data containers — what the UI displays and updates
EntitiesWrappers around SDK functionality — group operations and handle SDK calls
AdaptorsTransform SDK data into CDF shape — bridge between SDK and CDF
SDKsRaw APIs and protocols — auth, HTTP, device communication
RegistryManage which adaptor is active — route all calls to the right SDK

Why the design works this way

Design choiceBenefit
Entities delegate to SDKUI methods map cleanly to SDK operations — no translation in screens
Adaptors transform dataEach SDK adaptor owns the translation — easy to add new SDKs
Single AdaptorRegistrySwitch SDKs at runtime without changing UI code
Stores update via callbackAll data changes go through one path — no race conditions or inconsistency
No SDK types leak to UIUI never imports SDK packages — cleaner dependencies and easier to test

On this page