Big topic for which there is no one correct answer. I'll try to give a schematic answer ... one that leans toward "it depends" but provides some meat.
DevForce supports both polling and push approaches. You can read about push here:
http://drc.ideablade.com/xwiki/bin/view/Documentation/push-notification . Or you could use some kind of message bus (NServiceBus or something in Azure maybe); this last approach would be out-of-band from a DevForce perspective.
They all have one thing in common: you must write server-side code that determines what has changed and when it changed ... in a way that is useful to clients. I think this is what you are asking about.
Again, the solution depends upon business and application specifics that I only you know. You could put the detection logic in the EntityServerSaveInterceptor because there you can know when a DevForce client application is saving changes. Of course you will miss changes made to the database is some other way. If that is a risk, you can write and run a daemon process on the server that watches for database changes of interest.
Whatever you do about detecting changes, you then must decide where and how to record them. Some people use message queues. Those who want to stay in the database paradigm will log consolidated change entries in a "Change" table.
Having figured that out, you now have to decide how to communicate those changes to the clients that care. Such clients could poll the Change table using standard DevForce. That's the easiest approach because you don't have to worry about pub/sub; each client manages its own needs.
Or you could resort to some kind of server-side process push that sends change notifications to subscribing clients either by using the DevForce push facilities mentioned above or with a message bus (an alternate push mechanism outside of DevForce).
Should you push or poll? There is no right answer. Everything depends upon your actual scaling and timing requirements.
Polling is the easiest way and is just fine for many applications. I know people who reject polling as a matter of principle without regard to any of the tradeoffs. That attitude is costly and naive. Server-side push adds complexity that is not repaid until the number of users is quite large or the latency requirement is especially brief (sub-second).
Maybe you've done the math and you know that you have to push (you have hundreds/thousands of interested clients and/or subsecond latency SLAs). Then you can look into DevForce push ... and look into a message bus ... and decide which way works for you. Both will be more challenging than polling ... but if that's what you need ... then you do it.
Whatever you decide, make sure that you (1) wrap your solution in abstractions that free you to change your implementation later and (b) measure performance results against your requirements.
Hope that helps.
Edited by WardBell - 04-Jan-2012 at 7:38pm