I agree that complexity needs to be removed wherever possible

There is a statement in VB6 used to Redimension an array - so you could start with an array of 1 and keep redimensioning it every time you added an element to the array

On the other hand, if you knew that you could never have more than 1000 items in the array (ever) then you could define the array at 1000 and be done

This is called eliminating complexity



Similarly with your problem, what if the data did change - then every machine needs to be refreshed

What if every machine was refreshed periodically even if the data didn't change ?

What is lost ? Nothing

In simple terms - if an operator touches a machine then refresh the data, otherwise refresh the data on a periodic basis

This is not a pure solution, but the most simple


=============================================

Another, more exact solution is as follows

Say you have 10 machines in a network, all needing to be refreshed as the data changes

Say machine 3 causes the change to the data

1) The central database is changed (preferable SQL Server Express)
2) Machine 3 writes out to a specific folder (on the server) 9 files 1.txt 2.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt containing nothing of importance - perhaps the time
ALTERNATELY - machine 3 writes to a folder on each of the other 9 machines, which is being "watched" by the program
3) Every machine is running a "watch" on that specific folder and will be triggered to run a routine if something is changed in the directory
4) Machines check if their value (eg, Machine 1 checks for 1.txt to exist) if their value exists, the data is refreshed on their screen and the 1.txt is deleted

Since even machine 3 is running a "watch" it will also go looking for 3.txt but will not find it (its data has already been refreshed)

Now this technique may not appeal to the purists out there, but gee - it will certainly work, and could be programmed by a novice