This repository was archived by the owner on Feb 13, 2025. It is now read-only.

Description
Create a goroutine per alert that runs the alert independently.
If one alert takes a long time, it will not affect other alerts.
The gorutine will maintain the current state for the alert, and will manage all mutations to that state (template rendering, status updating). It can then merge that state into the "global" schedule state via thread-safe mechanism. Global state will be essentially read-only.
Dependencies will be slightly affected. Alerts will still run the expressions from depended-upon alerts in real-time, but if the depended-upon alert is unknown or unevaluated, we will rely on the last known state in the global state.