We use Elixir as our backend language and for rendering our HTML templates everywhere in Statuspal. So far, we have three main applications:
One monolith Phoenix app that serves the status pages and admin site. The status pages get heavily cached through ETS as well as with NGINX reverse proxy.
One microservice that’s our monitoring agent, which uses a Supervisor and GenServer to manage the monitoring checks.
Another microservice we use to send transactional emails through SMTP servers using Oban to process the email delivery.