База данных как шина связи между экземплярами приложения

У меня в голове крутится один интересный проект и сразу появилось несколько теоретических вопросов. Проект - это распределенная CMS.

Вводные:

  1. Есть база данных (postgresql)
  2. Есть множество экземпляров этой CMS (ноды).
  3. Все ноды работают с БД из пункта 1

Вопрос: Собственно встаёт вопрос - как лучше всего организовать синхронизацию нод? У меня появилась идея сделать это через базу данных.

Как я это вижу: Ноды синхронизируют свое состояние через LISTEN/NOTIFY возможности Postgresql. К примеру, одна из нод меняет что то в базе данных - отрабатывает trigger, который уведомляет об изменениях все ноды. Ноды в свою очередь реагируют на нотификации от базы данных и обновляют своё состояние. Так же в базе возможно придется добавить несколько служебных таблиц, к примеру список функционирующих нод и тд.

Но я не уверен что это хороший подход. Помогите пожалуйста разобраться. Можете предлагать другие варианты - я буду только рад.


Ответы (0 шт):