일반적으로 kafka message queue를 활용하면
아래와 같이 하나의 topic을 두고 message를 produce 하고 consume 한다.
위와 같은 경우 이외에 filtering이나 추가 로직을 중간에 두어
여러 topic을 사용하며 체이닝 하는 형식으로 kafka를 활용하기도 한다.
이러한 경우에 여러 producer, consumer를 생성해서 사용하는 것보다는 kafka stream을 활용할 수 있을것 같다
Kafka Stream
Kafka Streams는 카프카에 저장된 데이터를 처리하고 분석하기 위해 개발된 자바 라이브러리
장점
- 카프카와 완벽한 호환
- Exactly-once 처리 보장
- 스케쥴링 도구가 별도로 필요 없음
- 자체 로컬 상태 저장소 사용
- 상태 기반 처리를 도와주기 위해 rocksDB를 로컬에서 사용하여 상태를 저장