10.4 스키마 레지스트리 호환성
- 스키마 레지스트리는 각 스키마의 고유 ID로 버전 정보를 관리한다.
- 스키마가 진화함에 따라 호환성 레벨을 검사해야 하는데 대표적으로 다음 레벨을 제공한다.
10.4.1 BACKWARD 호환성
- BACKWARD
- 새로운 버전의 스키마를 적용한 컨슈머가 이전 버전 스키마의 메시지를 읽을 수 있도록 허용하는 호환성
- 즉 상위 버전의 스키마를 컨슈머에게 먼저 적용한 후에 프로듀서를 적용해야 한다.
- 하나 아래의 하위 버전만 호환
- BACKWARD_TRANSITIVE
- 만약 모든 하위 버전 스키마를 호환하고자 한다면 BACKWARD가 아닌 이 타입을 적용해야 한다.
- 변경 허용 항목
10.4.2 FORWARD 호환성
- FORWARD
- 새로운 버전이 적용된 프로듀서가 보낸 메시지를 이전 버전이 적용된 컨슈머가 읽을 수 있는 호환성
- 상위 버전의 스키마를 프로듀서에 먼저 적용해야 한다.
- 하나 아래의 하위 버전만 호환
- FORWARD_TRANSITIVE
- 모든 버전의 스키마를 호환하고자 한다면 FORWARD가 아닌 이 타입을 적용해야 한다.
- 변경 허용 항목
10.4.3 FULL 호환성
- FULL
- FORWARD와 BACKWARD를 모두 지원하는 호환성
- 하나 아래의 하위 버전만 호환
- 프로듀서/컨슈머 아무거나 먼저 업데이트하면 된다.
- FULL_TRANSITIVE
- 변경 허용 항목
- 기본값이 지정된 필드 추가
- 기본값이 지정된 필드 삭제