Kafka 이벤트 스트리밍 실전 결
사이드 프로젝트에서 Apache Kafka를 도입해 서비스 간 이벤트 기반 통신을 구현한 경험이 있습니다. 주문 서비스와 알림 서비스를 분리하고, 주문 완료 이벤트를 Kafka 토픽으로 발행해 알림 서비스가 소비하는 구조로 만들었습니다. 컨슈머 그룹 개념을 이해하는 데 시간이 걸렸는데, 파티션 수와 컨슈머 수의 관계를 직접 실험하면서 병렬 처리 확장 방식이 어떻게 동작하는지 체득했습니다. 처음에는 메시지 중복 소비 문제가 발생했고, 멱등성 컨슈머 설계와 처리 완료 여부를 DB에 기록하는 방식으로 해결했습니다. 프로듀서 장애 상황을 시뮬레이션해보니 재시도 설정과 acks 옵션이 데이터 유실 여부에 직접적인 영향을 준다는 것을 확인했습니다. Kafka는 연결이 아니라 흐름을 설계하는 도구라는 결을 이 프로젝트에서 얻었습니다.