High level overview
Last updated
Last updated
The figure below shows a high level architecture of the Uptime Manager.
The following diagram describes a typical request to the /auth endpoints.
The following diagram describes a typical request to the /monitors
endpoints.
The heart of this application is a JobQueue
class that wraps a BullMQ Queue
.
A Monitor
is considered a job, when one is created it is enqueued in the JobQueue
.
Jobs are handled by a pool of workers in the JobQueue
and their tasks are executed in the order in which they are enqueued.
Workers are scaled up and down based on the jobs/worker ratio as jobs are enqueued and dequeued.
SSL is handled by LetsEncrypt and Certbot. This works by Nginx and Certbot sharing the same volume where the certificates are held. The following snippet from the docker-compose.yaml file shows how this works.
Please see this guide for more information on this setup.