PM2 --- инструмент который позволяет запускать несколько экземпляров приложения, какая-то базовая система балансирования нагрузки.
Для работы со сторонними сервисами с которыми может возникнуть задержки и фейлы выделяют в отдельные процессы (воркеры). А иногда не только те что работают со сторонними сервисами. В общем есть воркер который просто принимает какие-то запросы и помещает их в очередь. За очередью следят другие воркеры каждый со своей специализацией, функционалом и достают задачи из очереди и обрабатывают их. Если воркер упал, то задача возвращается в очередь, вокрер перезапускается. Но основной сервис от этого не падает и вообще на него это не влияет. Организовываются очереди обработки например с помощью инструмента RabbitMQ