Kafka 이벤트 기반 아키텍처에서 중복 처리 문제를 오프셋 커밋 전략으로 해결한 경험을 정리한 결
졸업 프로젝트에서 주문-재고-알림 서비스를 Kafka로 연결하는 이벤트 기반 아키텍처를 처음 설계했습니다. 처음에는 서비스 간 직접 API 호출로 설계했는데, 재고 서비스가 잠깐 내려가면 주문 처리 전체가 막히는 문제가 생겼습니다. Kafka를 도입해 비동기 이벤트 큐로 처리하자 재고 서비스가 복구됐을 때 밀린 이벤트를 순서대로 소비하는 구조가 됐습니다. 다만 컨슈머 그룹 오프셋 관리를 처음에 잘못 설정해 재시작 후 이벤트가 중복 처리되는 버그를 만났고, 오프셋 커밋 전략을 명시적으로 설정하는 방법을 학습해 해결했습니다. 이벤트 기반 아키텍처는 서비스 간 결합도를 낮추는 대신 순서 보장과 중복 처리를 직접 관리해야 한다는 트레이드오프를 실감했습니다.