## ADR #0008: Heartbeat monitors are used to monitor availability 1. **What did you decide?** An Heartbeat monitor shall be used to monitor availability of the engine components of SmartHut. 2. **What was the context for your decision?** Given the existent of three different engine components, the availability monitor strategy shall minimize network traffic so at not to overload the network between the three components. The chosen strategy shall also be able to effectively give a reasonable indication of availability of each engine component of SmartHut, so that the health of the SaaS deployment (and even of the user-controlled deployments) may be checked by a dashboard page. 3. **What is the problem you are trying to solve?** Which is the most effective and network-concious technique to monitor availability of engine components of SmartHut? 4. **Which alternative options did you consider?** - Watchdog monitor - Heartbeat monitor 5. **Which one did you choose?** - Heartbeat monitor 6. **What is the main reason for that?** An heartbeat monitor implementation requires half the amount of messages between the monitoring component and the component to check. With an appropriate clock, a heartbeat monitor can be as effective as a watchdog monitor to check availability of engine components. Pros: - Less network traffic - Easier to implement Cons: - Implementation of services is "active" (i.e. aware of the need to signal availability) - Power users with a personal deployment who do not wish to deploy an availability monitor are subjected to additional network traffic