У нас есть небольшой микросервис, единственная цель которого - получать сообщения через очередь и отправлять их во внешнюю систему.Сообщения могут поступать из любого количества других служб, и служба не знает о содержании сообщения.Внешняя система может принять или отклонить это сообщение.Я вижу несколько вариантов работы с ответами внешней системы:
- помещает ответы в одну и ту же очередь, используемую для получения сообщений
- помещает ответы в другую очередь
- помещает успешные ответы в другую очередь, а ответы об ошибках - в другую очередь
Я склонен выбирать третий вариант, чтобы разделить проблемы и не мешать счастливому потоку споток ошибок, но хотелось бы получить обратную связь, почему это может быть плохим выбором.
Есть ли какие-либо доступные ресурсы, документирующие лучшие практики для решения подобных проблем?
(Я знаю, что выше можно переписать в службу чтения из очереди и сохранения сообщения в БД, асинхронной отправки сообщений во внешнюю систему и сохранения ответа в БД, публикации события для указаниясообщение было обработано и было разработано API для получения ответа от БД, но для этого потребовались бы дополнительные БД, больше работы и больше ресурсов, что, на мой взгляд, было бы излишним)