There are many ways to solve this. I recommend to use a server-side application (installed on the database server system for example) which receives a notification from the inserting app. Then, the server side app will send either a UDP broadcast or use a TCP connection to the clients to notify them.
The clients then just need to listen for server messages in a background thread. The messages will be 'pushed' from the server to the client.
An example which can be used as a starting point is the Indy Telnet client component which has a listener thread for server messages. You do not have to open the client firewall for incoming connections to work this way.
There are also complete messaging solutions available, but maybe they would be to heavyweight for your requirements. If you like, I can provide some links.
I would not recommend
- database polling (too expensive and unflexible)
- database events (run in the server process, could block operation or crash)
A standard which can be used for this messaging system is WebSocket. There are commercial and open source Delphi implementations for the client and server side.