Я создаю веб-сервис с интерфейсом RESTful (назовем его MY_API ). Эта служба использует другой веб-сервис RESTful для обработки определенных аспектов (называя его OTHER_API ). Я хотел бы определить, какие типы рекомендаций следует использовать для обработки сбоев OTHER_API.
Сценарий
Мой пользовательский интерфейс - это одностраничное приложение javascript. Есть несколько довольно сложных действий, которые пользователь может предпринять, которые могут легко занять пользователя одну или две минуты. По завершении они нажимают кнопку SAVE и вызывается MY_API для сохранения данных.
MY_API имеет все необходимое для сохранения информации, предоставленной пользователем. Однако должно быть выполнено действие, которое обрабатывается OTHER_API. Например, OTHER_API может обрабатывать отправку электронных писем. Или, возможно, он обрабатывает добавление позиций в платежную ведомость моего пользователя. В обоих случаях это критические вещи, которые должны быть выполнены, но они не должны происходить прямо сейчас , они просто должны произойти в конечном итоге .
Если произойдет сбой OTHER_API, я не хочу просто сообщать пользователю, что его действие провалилось, поскольку они потратили на это много времени, и это сделает процесс менее оптимальным.
Вопросы
- Так я должен создать какую-то Очередь сообщений или событий, которая может сохранить эти неудавшиеся REST-запросы в OTHER_API и обработать их позже?
- Есть ли какие-либо советы или предложения по методам сохранения запросов REST для отложенной обработки?
- Существует ли рекомендуемое решение для очереди сообщений с открытым исходным кодом, которое будет работать для этого типа сценария с веб-службами REST на основе JSON? Java предпочтительнее, так как мой бэкэнд написан на нем.
- Есть ли другие методы, которые я должен рассмотреть?