Синхронизация Discourse для нескольких экземпляров

У меня есть главный сервер, и у меня будет более 100–200 подчинённых экземпляров. Подчинённые экземпляры могут быть онлайн/офлайн, но будут использоваться пользователями. Однако, когда офлайн-экземпляр выходит в онлайн, он должен иметь возможность синхронизироваться с главным сервером без создания конфликтов и обновлять все данные до актуального состояния. Я не хочу вносить какие-либо изменения в код, так как Discourse часто обновляется сам по себе, и не хочу ломать экземпляр из-за изменений в коде.

Я думаю о том, чтобы немного настроить PostgreSQL. Другие файлы, связанные с данными, можно синхронизировать с помощью syncthing. Однако обновление данных в PostgreSQL меня беспокоит, потому что если я буду напрямую синхронизировать данные главного сервера, то работа, выполненная офлайн-пользователем, будет удалена после синхронизации.

Я думаю попробовать изменить последовательность автоинкремента для каждой таблицы на UUID в базе данных.

Есть ли какое-то простое возможное решение для этого?

Discourse не предназначен для приложения такого типа. Крайне маловероятно, что вам удастся настроить двустороннюю синхронизацию с PostgreSQL так, чтобы это не нарушило работу Discourse.

Такая перемена потребует существенных изменений в коде Discourse.

Если сделать реплики только для чтения и организовать одностороннюю синхронизацию PostgreSQL, то это может сработать… но это будет сложно.

Привет, я планирую использовать систему так же, как и вы. Я нашел статью о слиянии двух сайтов Discourse. Если шаги по слиянию можно автоматизировать, возможно, мы сможем настроить cron-задачу для постоянного слияния базы данных между мастер-сервером и репликами?