Um klar zu sein, ich versuche nicht, Kafka als Datenspeicher für Event-Sourcing zu verwenden, nur um Ereignisse zu replizieren.Event-Sourcing-Schema auf Kafka erzwingen
Die Confluent Schema Registry für Kafka scheint sehr interessant, da sie das Schema für Nachrichten von Herstellern zu einem Thema validieren kann. Nach meinem Verständnis behandelt es jedes Thema wie eine Containerdatei - ein Schema pro Thema.
Diese Einschränkung funktioniert nicht für eine Ereignisquelle Strom, wo für ein einzelnes Aggregat wie File
Sie mehrere Nachrichtenschemata haben: FileCreated
, FileMoved
, FileCopied
, FileDeleted
. Jedes dieser Themen in einem separaten Thema zu behandeln, wäre kompliziert und fehleranfällig.
Gibt es ein Tool wie Schema Registry, das mehrere Schemas für dasselbe Thema unterstützt?
aktualisieren
zu klären, jede der Nachrichten oben würde ein anderes Schema. Zum Beispiel:
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" }
]
}
gleiche Frage, gibt es eine Möglichkeit, "oneOf" in JSON für avro Schema anzugeben? – aasthetic