분명히하기 위해 이벤트 소싱을위한 데이터 저장소로 카프카를 사용하려고하지 않고 단순히 이벤트를 복제하려고합니다.카프카에서 이벤트 소싱 스키마 시행
카프카의 Confluent Schema Registry은 생산자가 주제로 보낸 메시지의 스키마를 검증 할 수 있다는 점에서 매우 흥미로운 것 같습니다. 그러나, 내가 이해하는 바에 따르면 각 항목은 컨테이너 파일과 같이 주제별로 하나의 스키마로 취급됩니다.
이 제한 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