Есть такие штуки как
брокеры сообщений, они специально придуманы для быстрого приема сообщений из разных источников, и передачи их обработчикам или клиентам по требованию.
Там по ссылке их целый список, разной степени навороченности.
примеры:
https://habr.com/ru/post/488654/ RabbitMQ
https://habr.com/ru/post/496182/ Apache Kafka
Какой именно вам лучше подойдет - сложно сейчас сказать.
Также можно Redis с этой целью применить.
В общем виде схема примерно такая:
Принимаете все подряд сообщения, ставите им статус "в очереди".
Обработчик берет сообщение, ставит статус "в работе" и дату.
Если обработал - меняет статус на "обработано".
Какой-то вотчер периодически проверяет те что в работе, и если времени прошло много - меняет статус "в работе" на "в очереди" и ставит счетчик ошибок. Если Ошибки повторяются - меняет статус на "здесь ошибка в сообщении, разберитесь"
С доставкой абонентам история похожая, только статус не "в работе" а "ожидает отправку", "отправлен", "принят" и т.д.