# Optimization Strategy: Centralized Data Processing vs. Individual Session Bindings

**URL:** <https://forum.inductiveautomation.com/t/optimization-strategy-centralized-data-processing-vs-individual-session-bindings/114878>\
**Category:** Ignition\
**Tags:** perspective, ignition83\
**Created:** [April 3, 2026, 12:57pm UTC](https://forum.inductiveautomation.com/t/optimization-strategy-centralized-data-processing-vs-individual-session-bindings/114878 "2026-04-03T12:57:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![emmanuelsrlok](https://avatars.discourse-cdn.com/v4/letter/e/59ef9b/32.png) [@emmanuelsrlok](https://forum.inductiveautomation.com/u/emmanuelsrlok)\
**Post date:** [April 3, 2026, 12:57pm UTC](https://forum.inductiveautomation.com/t/optimization-strategy-centralized-data-processing-vs-individual-session-bindings/114878/1 "2026-04-03T12:57:16Z")

</div>

Hi everyone,

I’m looking for advice on the most performant way to handle "heavy" dashboards in Perspective.

**The Scenario:** I have a dashboard that needs to display aggregated data for a large number of assets, for example:

- Status counts for 50+ Chillers (Running, Stopped, Faulted).
- Real-time averages for 200+ sensors.
- Totalized values across multiple equipment groups.

**Current Approach vs. Proposed Idea:** Initially, I considered using **Indirect Bindings** or **Transform Scripts** on each session. However, I’m concerned about the performance impact on the Gateway if multiple users open the same dashboard simultaneously, triggering hundreds of redundant tag reads and calculations.

**My Proposal:** Instead of each session performing its own calculations, I want to create a **centralized script** (perhaps a Gateway Timer Script or a Tag Change Script) that:

1. Reads all necessary tags in a single call using `system.tag.readBlocking`.
2. Performs the aggregations and logic in the background.
3. Writes the results to a set of **Expression Tags** or a **Document Tag (JSON)**.

This way, the Perspective sessions simply bind to these "pre-calculated" tags without executing any heavy logic.

**Questions:**

1. Is this "Global Aggregator" approach considered best practice for high-tag-count dashboards?
2. Are there any pitfalls to using a single JSON Document Tag to store all dashboard stats?
3. Would it be better to use a **Gateway Tag Change Script** on a specific folder or a **Timer Script**?

I'd appreciate any insights on how to keep the Gateway Lean while scaling the number of active sessions.

---

<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:** [April 3, 2026, 1:57pm UTC](https://forum.inductiveautomation.com/t/optimization-strategy-centralized-data-processing-vs-individual-session-bindings/114878/2 "2026-04-03T13:57:46Z")

</div>

1. if you typically have the same dashboard open in more than one client, yes, this is a good plan.

2. not a problem.

3. use a timer event. Or perhaps a scheduled event for once per minute updates (or slower).

---

<div class="post-metadata">

**Author:** ![lane.duncan](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lane.duncan/32/83700_2.png) [@lane.duncan](https://forum.inductiveautomation.com/u/lane.duncan)\
**Post date:** [April 4, 2026, 4:57am UTC](https://forum.inductiveautomation.com/t/optimization-strategy-centralized-data-processing-vs-individual-session-bindings/114878/3 "2026-04-04T04:57:48Z")

</div>

I have seen this approach populating a single memory dataset tag on a gateway timer script and it seemed to work well.

I am very curious if a json or dataset would perform better….
