Apologies for the long post...
Where I work we have a system with many subsystems which are located in different locations. All the subsystems process some data and write the result on A database. In case any other subsystem needs the output f other subsystems it gets connected to the database and read from it. And that is how subsystems are communicating together. Also there is GUI which get connected to the DB and shows information to the end user. The interaction between database and subsystems are very high, and although I argued that this is not a very good choice of design, I have been told that due to lots of reasons (mainly "business-wise" and short deadlines) we cannot change anything in the system for now.
Now we want to add a new feature where user can add notification-alert system where in case something happened in any subsystem, it notifies the user via GUI. And of course depend on different subsystem there would be different items that should be considered. And based on these items user can specify a rule for the alert. For example, On different server we have software which get the server information like CPU and RAM usage and etc. SO these could be items for user to set a rule for a notification alert. Like if memory used space exceed X percent.
The only way I can think to solve this is, to create new tables in the database. When user add a new rule for a subsystem, insert the rule into the data base. And every subsystem reads the data base to see if any rule has been specified for it. But this means every subsystem should read from database every minute at the most, and I think this would break our system... And then subsystems write the result on the DB and GUI also reads the DB to see if any notification should be shown to user......
any thought on how to overcome this?