# Agents controller communication
# IoTHub-Controller communication
All agents controller communicate with the IoTHub through its Agency module
. For this task, both controller and agency implement gRPC (opens new window), a high-performance and open-source framework for remote procedure calls. This framework provides fast, stable, and scalable communication between controllers and the IoTHub agency.
# Controller-Agent communication
An agents controller can manage several instances of different agents. The installation process is totally done by the controller itself; thus, there is no need for you as a user to manually install the agents that you want to use. Currently, every agent is executed by the controller as a child process, this allows the controller to have a clear overview about each agent instance.
Stopping the controller
Since agents are executed as subprocesses of the controller. Stopping the controller (i.e., the main process) will also stop every controller agent.