The general architecture is a collection of four
threads.
Three threads that run their dedicated Tokio runtime and handle
the axum server, send outgoing notifications and run scheduled API
requests respectively. The fourth thread runs the Lua VM.
Channels exist between the threads to send messages and allow the Lua
script to orchestrate and configure everything.