Module 3 — Properties vs Telemetry Deep Dive


🎯 Module Objective

By the end of this module, you will:

This is one of the most important modules in DTDL mastery.


1️⃣ The Core Confusion

Most beginners ask:

Should this be a Property or Telemetry?

If you misuse these, your entire digital twin architecture becomes messy.

So let’s understand this properly.


2️⃣ Property — Represents State

A Property represents the current state of a twin.

It is stored in the twin instance.

Example:

{
  "@type": "Property",
  "name": "temperature",
  "schema": "double"
}

This means:

The Room twin has a stored temperature value.

Important:

Think:

Property = Snapshot of reality


3️⃣ Telemetry — Represents Events

Telemetry represents data sent from devices.

Example:

{
  "@type": "Telemetry",
  "name": "humidity",
  "schema": "double"
}

This means:

Humidity readings are being sent from a device.

Important:

Think:

Telemetry = Stream of data


4️⃣ State vs Event Thinking

This is the architectural mindset.

Concept Property Telemetry
Stored in twin Yes No
Queryable Yes No (by default)
Represents State Event
Example temperature = 24°C temperature reading at 10:01 AM

If you want to ask:

“Show me all rooms above 25°C”

Temperature must be a Property.


5️⃣ Real-World Example — Smart Building

We have:

Sensor sends:

What should we do?

Correct architecture:

Telemetry → arrives
Application → processes
Twin Property → updated

So:

Telemetry feeds the Property.

Property stores the current state.


6️⃣ Practical Modeling Example

Here is a correct Room model:

{
  "@id": "dtmi:com:smartbuilding:Room;1",
  "@type": "Interface",
  "@context": "dtmi:dtdl:context;2",
  "displayName": "Room",
  "contents": [
    {
      "@type": "Property",
      "name": "temperature",
      "schema": "double"
    },
    {
      "@type": "Telemetry",
      "name": "temperatureReading",
      "schema": "double"
    }
  ]
}

What happens:

You may update the Property using telemetry processing logic.


7️⃣ When to Use Property

Use Property when:

Examples:

Properties are about state.


8️⃣ When to Use Telemetry

Use Telemetry when:

Examples:

Telemetry is about events.


9️⃣ Production Design Pattern

Professional architecture flow:

  1. Device sends telemetry
  2. IoT Hub receives it
  3. Azure Function processes it
  4. Twin property gets updated
  5. Queries use the Property

This keeps your twin clean and efficient.

Never store high-frequency data as Property updates directly without processing logic.


🔟 Common Beginner Mistakes

❌ Making everything telemetry
❌ Making everything property
❌ Storing high-frequency data as property
❌ Not separating state from event
❌ Not thinking about query use cases

Architecture rule:

Design backward from the question.

Ask:

“What queries will I need to run?”

Then design Property vs Telemetry accordingly.


1️⃣1️⃣ Advanced Thinking — Derived Properties

You can derive properties from telemetry.

Example:

Telemetry:

Derived Property:

System logic:

If vibration > threshold → isMachineHealthy = false

This enables:

This is how real industrial systems are built.


1️⃣2️⃣ Performance Considerations

High-frequency telemetry:

Twin properties should represent meaningful state.

Not raw noise.


1️⃣3️⃣ Modeling Exercise

Think about a hospital ICU.

What should be Property?

What should be Telemetry?

This exercise helps you build modeling intuition.


🧠 Key Takeaways

This distinction separates junior from senior modelers.


🚀 What’s Next?

In Module 4, we unlock the real power of Azure Digital Twins:

Relationships & Graph Modeling

You will learn:

This is where Digital Twins become truly powerful.

💬
AI Learning Assistant