리디에서 Kafka를 사용하는 법 - 리디주식회사 RIDI Corporation
우리팀은 카프카를 어떻게 사용하고 있을까 | 우아한형제들 기술블로그
Apache Kafka Version
3.7.0
Apache Zookeeper Version3.9.2
Apache Kafka는3.5.X
부터 Zookeeper 지원을 종료했으며,3.7.0
은 ZK 모드가 포함된 마지막 릴리즈 버전
우리가 만든 서비스, mogakGo 깃허브 링크
사용자가 서비스 접속
· 찔러보기
· 프로젝트 생성
· 프로젝트 매칭
과 같은 Task를 수행하게 되면, 이에 대해 해당 사용자의 현재
업적에 대한 현황을 토대로 업적 이력
과 업적 달성 처리
Task를 수행한다. 그리고 업적이 달성되면 사용자에게 업적 달성 알림
을 실시간으로 전송한다. 전자의 Task를 A
, 후자의 Task를 B
라고 편하게 부르겠다. A가 수행되면 B는 무조건 수행되어야 하
지만, 예외 상황을 생각해보자. 만약 A가 실패했다면 B 역시 무조건 실패해야 한다. 만약 A가 성공했는데 B가 실패하는 경우에는
어떻게 해야 할까? B 작업은 그 자체로 주요한 작업이기는 하지만 B의 실패로 인해 A가 롤백되어 버린다면? 사용자가 직접 확인
할 수 있는 플랫폼에서 A 작업은 표면적으로 드러나지만 B 작업은 백그라운드에서 작업이 되기 때문에 사용자는 실패의 원인을
알지 못한 채로 다시 A 작업을 수행해야 할 것이다. 이러한 플로우는 사용자에게 안 좋은 서비스 경험을 남기게 될 것이라고 생각