同じようなことに取り組んでみましたか?
私も同様のケースで、Discourse をオフライン環境で動作させ、同期を行う必要があります。
マスターサーバーがあり、100〜200 以上のスレーブインスタンスを運用する予定です。スレーブインスタンスはオンライン/オフラインの両方の状態になり得ますが、ユーザーが利用します。オフラインだったインスタンスがオンラインになった際、競合を起こさずにマスターサーバーと同期し、最新のデータに更新される必要があります。Discourse は頻繁に更新されるため、コードの変更を加えるとインスタンスが壊れるリスクがあるため、コードの変更は避けたいと考えています。
PostgreSQL をある程度カスタマイズすることを考えています。他のデータファイルは Syncthing で同期できますが、PostgreSQL のデータ更新は懸念材料です。マスターのデータを直接同期すると、オフラインユーザーが行った作業が上書きされてしまう可能性があるからです。この問題に対するスクリプト作成のご経験はいかがでしょうか?