Mjölnir is divided up into a few pieces, controllers, agents, and plugins. These parts are explained in more detail below.
The controller connects all of the different pieces together, and hosts the plugins so that the agents can download them as needed. In addition to connecting things, the controller(s) control what actions are taken from the alerting inputs.
Agents are lightweight binaries that can be run on all servers in a datacenter, and can download various remediation plugins from the controller(s) to take the required actions. Agents listen on a tcp port for a protocol buffer request before taking action. Afterwards they respond with a protocol buffer response detailing if their actions were successful or not. The controller can then decide to escalate if needed.
Plugins are how Mjölnir interacts with other things, from monitoring frameworks like Prometheus to datacenter management software like MAAS, or even cloud APIs like AWS.
All communication is specified in the api definitions.