# Do's and Don'ts when developing First Project with Ignition?

**URL:** <https://forum.inductiveautomation.com/t/dos-and-donts-when-developing-first-project-with-ignition/93592>\
**Category:** General Discussion\
**Created:** [July 23, 2024, 8:55am UTC](https://forum.inductiveautomation.com/t/dos-and-donts-when-developing-first-project-with-ignition/93592 "2024-07-23T08:55:09Z")\
**Posts on this page:** 1\
**Showing post:** 42

<div class="post-metadata">

**Author:** ![Ryan\_Deardorff](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/ryan_deardorff/32/63815_2.png) [@Ryan\_Deardorff](https://forum.inductiveautomation.com/u/Ryan_Deardorff)\
**Post date:** [December 20, 2024, 3:05pm UTC](https://forum.inductiveautomation.com/t/dos-and-donts-when-developing-first-project-with-ignition/93592/42 "2024-12-20T15:05:13Z")

</div>

Use Gateway Tag Change scripts instead of tag Value Changed scripts. The latter are limited to a thread pool of size 3, so it is recommended that any script execute quickly (single-digit ms), and the former does not have that limitation.

I didn't realize this until fairly recently. We had many Value Changed scripts that ran in the dozens if not hundreds of ms. We also were seeing a few "Slow Response" events per day. I doubt it's a coincidence that since I converted most of these scripts to Gateway Tag Change I have yet to see a single SR event.

Since GTC events cannot be applied to UDT instances, this can be challenging. I was able to make use of the fact that GTC tag paths can contain wildcards, but other solutions have been discussed:

> [@Java concurrent queue for tag change scripts](https://forum.inductiveautomation.com/t/java-concurrent-queue-for-tag-change-scripts/82044):
>
> Continuing the discussion from [[SOLVED] Are tag Value Changed scripts running asynchronously?](https://forum.inductiveautomation.com/t/solved-are-tag-value-changed-scripts-running-asynchronously/68704/5): We've got code in our standard library that I need to log a value change on a tag and then associate various data points with that value change. The value is located in a UDT, and because this is part of our "standard" library we use for our customers, the number of tags is variable and quite possibly numerous so having a gateway tag event script isn't feasible for this solution. I was reading up on …

---

_[View the full topic](https://forum.inductiveautomation.com/t/dos-and-donts-when-developing-first-project-with-ignition/93592)._
