У нас есть две системы, в которых система A отправляет данные в систему B. Требование состоит в том, чтобы каждая система могла работать независимо от другой, и ни одна из них не взорвется, если другая сторона не работает. Вопрос в том, что лучший способ для системы A связаться с системой B во время выполнения требования развязки.База данных хорошая точка развязки системы?
В системе B в настоящее время имеется процесс, который опросает данные в таблице db и обрабатывает любые новые строки, которые были вставлены.
Предлагаемая конструкция предназначена для системы A, чтобы просто вставить данные в таблицу db системы b, и система B обрабатывает новые строки существующим процессом. Вопрос в том, удовлетворяет ли это решение требование развязки двух систем? Является ли база данных считающейся частью системы B, которая может стать недоступной и привести к сбою системы A?
Еще одно решение для системы A - поместить данные в очередь MQ и выполнить процесс, который будет считываться из MQ, а затем вставить в базу данных системы B. Но разве это лишние накладные расходы? В конечном счете, очередь MQ более терпима к ошибкам, чем таблица db?