Sync data from Agent to Controller

We have a module that captures certain data and stores into custom tables in the same database as pointed by Audit Data source.

In Enterprise setup, the module is installed on both Controller and Agent(s).
Agent module captures the data related to local activities such as number of client sessions opened on that gateway etc. and stores in its own database.

We want to query the data logged by Agents and create a summary across all Agents and store the summary in Controller database.

One way to achieve this is write a service on Agent that we can call from Controller periodically to fetch data, create a summary and store in Controller database.
However this could have overheads and scheduled tasks may run unnecessarily even if there is no new data on the Agent(s).

We would like to know if there is a way Agent module can notify/send data to controller when it is available at the agent, instead of Controller polling the agent periodically.

You should be able to just write the service on the controller, and let the agent call the service as needed. Services can exist on either side, and can be called by the other side at any time.

Thanks. This would surely help and reduce the overhead of polling agents.