4

akka-persistence を使用してシステムを設計したとしましょう。これで、イベントストアにイベントが保存されました。システムが稼働している間に、新しい機能が要求されました。その結果、イベントにフィールドを追加または変更するのが最善の方法であることがわかりました。フィールド名またはタイプを変更してみましょう。

現在、イベントには 2 つのバージョンがあります。1 つは本番環境にあり、もう 1 つは新しい展開にあり、互換性がありません。古いバージョンからデータを復元しようとすると失敗します。

データの移行以外に、そのための最善の方法は何ですか?

4

1 に答える 1

5

これは間違いなく、本番環境で akka 永続性を使用する際の大きな問題の 1 つです。これについてはakka-user メーリング リストで多くの議論がありました。

新しい機能が追加情報のみを必要とする限り、Google プロトコル バッファや json などの限られたスキーマの進化を可能にするシリアル化形式を使用することが解決策になると思います。

新しい機能が既存のデータを変更する必要がある場合は、データを移行するしかありません。

于 2015-07-22T09:48:48.180 に答える