Hi Amith,
Great question, this is one of the first things most people run into with Azure Digital Twins (ADT). The best explanation for this is in this docs article. I'll quote a part here, but please always refer to the latest docs version.
Properties are expected to have backing storage. This means that you can read a property at any time and retrieve its value. If the property is writeable, you can also store a value in the property.
Telemetry is more like a stream of events; it's a set of data messages that have short lifespans. If you don't set up listening for the event and actions to take when it happens, there is no trace of the event at a later time. You can't come back to it and read it later.
- In C# terms, telemetry is like a C# event.
- In IoT terms, telemetry is typically a single measurement sent by a device.
If you want to store the values of your telemetry, please use a property. If you just want to describe that your device has this capability and need to react to it outside of ADT, you can use telemetry.
Hope this helps!