# Design principles to read live values of a tag

**URL:** <https://forum.inductiveautomation.com/t/design-principles-to-read-live-values-of-a-tag/44745>\
**Category:** Module Development\
**Created:** [March 22, 2021, 9:16am UTC](https://forum.inductiveautomation.com/t/design-principles-to-read-live-values-of-a-tag/44745 "2021-03-22T09:16:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![mlunapinel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mlunapinel/32/19719_2.png) [@mlunapinel](https://forum.inductiveautomation.com/u/mlunapinel)\
**Post date:** [March 22, 2021, 9:17am UTC](https://forum.inductiveautomation.com/t/design-principles-to-read-live-values-of-a-tag/44745/1 "2021-03-22T09:17:00Z")

</div>

Hello!

I was wondering what is the best way to read tag values every ‘n’ seconds (at least one second). After reading, the module would do some operations and store them.

I have explored registering a thread which uses `TagManager.readAsync()`. The problem with this option is that I’m not confident that this will work ar high frequencies since I don’t want to miss any data and there could be many tags. I also don’t think registering a thread per tag (or group of tags) is sustainable.

Other option would be subscribing to Tag Change and saving the data with a timestamp.

I would love to hear the community’s opinion on this topic 🙂

Thank you!

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [March 22, 2021, 12:53pm UTC](https://forum.inductiveautomation.com/t/design-principles-to-read-live-values-of-a-tag/44745/2 "2021-03-22T12:53:18Z")

</div>

I would subscribe, hold the necessary data in my own cache as it arrives, then calculate and store results from the cache.
