
백엔드
Confluent Schema Registry 도입기!
두줄요약
요기요는 MSA 환경에서 분산된 데이터를 통합하기 위해 Confluent Schema Registry를 도입했습니다.\nSubjectNameStrategy 3종과 multiple type event 적용 이슈를 Pilot 경험을 바탕으로 정리했습니다.
핵심 내용
- 요기요 백엔드 MSA 전환 이후 분산된 데이터를 통합하고 일관성 있게 동기화하기 위해 Confluent Cloud와 Schema Registry 도입 배경을 정리
- Schema Registry의 역할인 스키마 등록, 조회, 버전 관리, 호환성 검사, 검증 기능을 통해 데이터 일관성과 안정성을 높일 수 있는 점 설명
- SubjectNameStrategy 3종(TopicNameStrategy, RecordNameStrategy, TopicRecordNameStrategy)의 명명 방식과 활용 시나리오 비교
- multiple type event를 TopicNameStrategy와 Avro Union으로 사용할 때의 이슈, 동일 record명 충돌과 Python AvroDeserializer 관련 문제, 그리고 대응 방식 공유
적용해볼 점
- 토픽 설계와 스키마 전략을 함께 검토하는 사전 Pilot의 필요성
- 메시지 유형이 다양한 경우 전략별 장단점을 기준으로 적절한 SubjectNameStrategy 선택
- 공식 문서 외의 실제 구현 이슈와 라이브러리 제약까지 함께 확인하는 검증 과정