The desktop client is polling the server every 30 seconds to see if there are changes which need to be synced.
Thinking about a big installation with thousands of clients this will put quite some load on the server for nothing (in case there are no changes to be synced)
Proposal
The desktop client can connect to a web socket. Web sockets have been designed for pushing events from the server to the client.
The server part can be designed as an optional component - in case the client cannot connect to the web socket (or the server is not advertising this via it’s capabilities) it will fallback to the regular polling.
The web socket server will be an isolated server process which needs to run continuously.
(We have to analyse how this can be deployed in a scalable manner)
This stand alone web socket server will receive etag propagations as done in the owncloud server via existing hook mechanisms.
Work packages
build web socket support into the client
use web socket if advertised by the client
server advertises web socket support via the capability api
add etag propagation hook into owncloud core
build a app which pushes the hook event information to the web socket server