1つは特定のサーバーで実行される「メイン」アプリで、もう1つは数十/数百の他のサーバーで実行され、通常はメインアプリと通信します(双方向)。メインアプリと他のインスタンスの間には、両側から書き込み可能な多くの共有データがあります (postgres テーブルの一部)。メインを含むすべてのインスタンスはオフラインになることがありますが、他のインスタンスは引き続き機能し、データを永続的に操作できます。メインアプリからのデータは他のアプリと同期し、他のアプリからのデータはメインアプリと同期する必要があります (おそらく、カウンターパートがしばらくオフラインになってからオンラインになったとき)。
各アプリでdebeziumを使用してカフカサーバーを実行することを検討していたので、ローカルDBへのすべての書き込みと、各アプリで何らかのカフカ接続をキャプチャしてリモートカフカを消費します。メインアプリは他のすべてから消費する必要があり、他のすべてのアプリはメインから消費します。
私が確信していない最大のことは、本質的にこれはマルチマスターレプリケーションであるため、そのようなものが競合をどのように処理できるかということです. 誰かが同様の経験をしたか、そのようなデザインについての洞察を追加できるかどうか疑問に思っていました.