Kafka는 대용량, 실시간, 또는 스트리밍 데이터를 다루는 많은 시나리오에서 사용됩니다 — 메시징, 데이터 파이프라인, 이벤트 기반 아키텍처, 스트림 처리, 로그 집계 등. 사용 사례를 이해하면 Kafka가 어디에 적합한지 명확해집니다.
일반적인 사용 사례
✓ MESSAGING / 이벤트 스트리밍 → 서비스 간 대규모 결합도 낮춘 pub/sub
✓ DATA PIPELINES / 통합 → 시스템 간(데이터베이스, 서비스, 데이터 웨어하우스, 분석)
데이터를 안정적으로 스트리밍 — 중심 데이터 "백본"
✓ EVENT-DRIVEN 아키텍처 → 서비스가 이벤트를 발행하고 반응; event sourcing(이벤트를
진실의 원천으로)
✓ STREAM PROCESSING → 이벤트 스트림에 대한 실시간 처리/분석(Kafka Streams, Flink)
✓ LOG 집계 → 많은 서비스의 로그/메트릭을 하나의 스트림으로 수집
✓ 활동 추적 → 사용자 활동, 클릭스트림, 텔레메트리를 대용량으로
✓ 변경 데이터 캡처(CDC) → 데이터베이스 변경을 다른 시스템으로 스트리밍
✓ 메트릭 / 모니터링 → 실시간 메트릭 수집 및 처리
Kafka가 이에 적합한 이유
→ HIGH THROUGHPUT → 막대한 이벤트 볼륨 처리(활동, 메트릭, CDC)
→ DURABLE + RETAINED → 안정적 파이프라인; 재생; 같은 데이터의 다중 consumer
→ DECOUPLING → producer와 consumer 독립(이벤트 기반, 통합)
→ REAL-TIME → 실시간 처리/분석을 위한 저지연 스트리밍
→ SCALABLE → 데이터 볼륨과 함께 성장
→ 많은 아키텍처에서 데이터의 중심 "신경계"
