This repository has been archived on 2023-06-18. You can view files and clone it, but cannot push or open issues or pull requests.
soft-arch/src/sa/model/decisions/0008-heartbeat-as-monitor.madr

41 lines
1.6 KiB
Plaintext

## 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