Мысли, почему система, где сервисы общаются через общую шину сообщений проще, чем где общение идет через API.
В системе с API/REST системы синхронно друг к другу обращаются, для этого:
требуется обработка ошибок на всех уровнях (допустим процесс А вызывает Б а тот вызывает В)
плюс обработка таймаутов
плюс логгирование ошибок (pl7: логированием занимается вызывающая сторона) т.е в вызывающей стороне должно быть понимание какие ошибки могут произойти на вызываемой стороне как об этом лучше сообщить и что делать вообще
В системе с сообщениями, у процесса есть шина, он кладет в нее запрос. В результате может появится:
ответ с результатом
ошибка (уже сформированная обрабатывающей стороной, в едином формате более менее)
или таймаут (который, как мне кажется, будет более естественно выглядеть в этой конфигурации). А процесс, который обрабатывает сообщения, сам занимается из получением, сам их обрабатывает, сам обрабатывает свои внештатные ситуации (про которые он в курсе), сам ведет свои логи и знает куда и как сообщать об ошибках.
Поэтому мне и кажется, что система на общей шине будет проще и легче, чем система построенная на API.
~~OWNERAPPROVE~~
Прочитал обсуждения.blog Холивара для. API vs шина сообщений |
|