База данных как шина связи между экземплярами приложения
У меня в голове крутится один интересный проект и сразу появилось несколько теоретических вопросов. Проект - это распределенная CMS.
Вводные:
- Есть база данных (postgresql)
- Есть множество экземпляров этой CMS (ноды).
- Все ноды работают с БД из пункта 1
Вопрос: Собственно встаёт вопрос - как лучше всего организовать синхронизацию нод? У меня появилась идея сделать это через базу данных.
Как я это вижу: Ноды синхронизируют свое состояние через LISTEN/NOTIFY возможности Postgresql. К примеру, одна из нод меняет что то в базе данных - отрабатывает trigger, который уведомляет об изменениях все ноды. Ноды в свою очередь реагируют на нотификации от базы данных и обновляют своё состояние. Так же в базе возможно придется добавить несколько служебных таблиц, к примеру список функционирующих нод и тд.
Но я не уверен что это хороший подход. Помогите пожалуйста разобраться. Можете предлагать другие варианты - я буду только рад.