明らかに、私は、イベントを複製するためだけにイベントソースのデータストアとしてKafkaを使用しようとしていません。Kafkaでイベントソーシングスキーマを適用する
カフカのConfluent Schema Registryは、プロデューサがトピックに送信したメッセージのスキーマを検証できる点で非常に興味深いようです。しかし、私が理解していることから、各トピックはコンテナファイルのように扱われます - トピックごとに1つのスキーマ。
この制限はFile
のような単一の集約のためにあなたが複数のメッセージのスキーマを持つことになり、イベント・ソース・ストリームのために動作しません:FileCreated
、FileMoved
、FileCopied
、FileDeleted
。これらをそれぞれ別の話題にすると、複雑でエラーが発生しやすくなります。
同じトピックの複数のスキーマをサポートするSchema Registryのようなツールが存在しますか?
更新
上記のメッセージのそれぞれが異なるスキーマを持つことになり、明確にします。たとえば:
FileCreated
:
{
type: "record",
name: "FileCreated",
fields: [
{ name: "id", type: "string" },
{ name: "name", type: "string" },
{ name: "path", type: "string" },
{ name: "size", type: "string" },
{ name: "mimeType", type": "string" },
{ name: "user", type: "string" },
{ name: "date", type: "long" }
]
}
FileMoved
:
{
type: "record",
name: "FileMoved",
fields: [
{ name: "id", type: "string" },
{ name: "from", type: "string" },
{ name: "to", type: "string" },
{ name: "date", type: "long" },
{ naem: "user", type: "string" }
]
}
FileDeleted
:
{
type: "record",
name: "FileDeleted",
fields: [
{ name: "id", type: "string" },
{ name: "date", type: "long" },
{ name: "user", type: "string" }
]
}
同じ質問ですが、avroスキーマのjsonに "oneOf"を指定する方法はありますか? – aasthetic