kafka는 장점이 많은 메시지 브로커입니다.
높은 트래픽을 감당할 수 있고, resilience 와 같은 기능도 제공이 됩니다.
managed 서비스를 사용하면 가용성 SLO 역시 매우 높아집니다.
안정성과 높은 성능을 요구하는 세상에서, 없어서는 안될 메세지 브로커가 되고 있는 것같습니다.
하지만, kafka는 다양한 데이터를 전달할 수 있기 때문에, 들어오는 이벤트의 형태에 기본적으로 제약을 두지 않습니다.
producer가 넣으면 넣는대로 받는 특성을 가진 메세지 브로커입니다.
장점이 될수 있지만, 공통된 구조를 사용해야하는 consumer입장에서는, 갑자기 이상한 데이터가 들어오면 당황스러울 수 밖에 없습니다.
Restful API에서 interface규약을 지키지 않은 것과 다르지 않습니다.
이러한 부분을 해소하기 위해 Kafka Schema Registry를 적용할 수 있습니다.
kafka에서는 이벤트의 형태를 Schema라고 부릅니다.
그리고, Schema Registry는 이벤트 형태에 제약을 두기 위해 Schema를 저장해놓는 저장소입니다.