개념

Kafka란?

Apache Kafka는 오픈소스 분산 이벤트 스트리밍 플랫폼으로, 수천 개의 기업들이 고성능 데이터 파이프라인, 스트리밍 분석, 데이터 통합, 그리고 핵심적인 애플리케이션을 위해 사용하고 있습니다…

즉 Kafka는 실시간으로 스트리밍 데이터를 수집하고 처리하는 데 최적화 된 분산 데이터 저장소이다.

kafka의 구조

관련 개념

코문철에 적용

이벤트 아키텍쳐 도입 배경

코문철은 서비스 고도화에 따라 AI 레퍼런스, 채팅, MVP 선정, 티어 계산, 분석 등 다양한 부가 기능이 지속적으로 추가되고 있다. 이 과정에서 다음과 같은 문제가 발생한다.

<aside> 🚨

문제점

배틀 진행과 대부분의 부가 기능은 반드시 동일한 시점에 처리되어야 하는 강한 일관성을 요구하지 않는다. 중요한 것은 배틀 상태 변경 사실이 전달되고, 각 기능이 이를 기반으로 언젠가 반영하면 된다.

따라서 배틀은 배틀만 하고, 상태 변경 사실을 이벤트로 발행하자. 각 부가 기능은 필요한 이벤트를 구독하여 독립적으로 처리하는 이벤트 기반 아키텍처를 도입하자.

<aside> 😇

기대효과

Kafka를 적용하는 이유

1️⃣ 배틀 이벤트 순서 보장