LeveeLogic for levee safety

I have 3 VM on my company server room. The 3 servers run Windows only software and use an uplink connection waiting for tasks to do. When the app needs something, it adds a row to the queue table and calls an uplink function. The function runs in the uplink server, does the job, writes the progress on the same database row, so the app can poll that row every 2 seconds and sees the status of the task.

I have 3 uplink servers because those Windows software can only have one running instance per machine, because some of the tasks last a minute or two while some last hours, and because redundancy increases reliability. If your tasks are quick or they can run in parallel, then one machine could be enough

The biggest problem was that most Windows software need the user to be signed in, and Windows needs an user to enter the password to sign in, and if you create an user without password you open a door to all sorts of attacks. So our IT configured the machines so that they automatically sign in while keeping the risk to a minimum.