전체 그래프
Concepts

Lambda vs Kappa Architecture

data-engineeringarchitecturestreaming

상위: Data Engineering

요약

배치와 실시간 처리를 결합하는 두 가지 대표 스트리밍 아키텍처 패턴. Lambda는 배치·스피드 두 레이어를 병행하고, Kappa는 모든 것을 스트림 단일 경로로 처리한다.

Lambda Architecture

배치 레이어와 스피드(실시간) 레이어를 함께 두고 결과를 병합.

              ┌→ Batch Layer ([[Spark]])   Batch View
Data Source →─┤
              └→ Speed Layer ([[Flink]])   Real-time View
                        
              Serving Layer (  병합 제공)
  • 배치 레이어: 전체 데이터를 정확·완전하게 처리 (지연 있음)
  • 스피드 레이어: 최신 데이터를 빠르게 처리 (근사치)
  • 장점: 정확성 + 실시간성 동시 확보
  • 단점: 두 개의 처리 시스템을 이중으로 유지해야 함 (로직 중복, 운영 복잡)

Kappa Architecture

스트림 처리 단일 파이프라인으로 통일. 재처리가 필요하면 스트림(로그)을 처음부터 재생(replay).

Data Source  Stream Processor ([[Flink]])  View
  • 모든 데이터를 스트림으로 처리 (배치도 "유한한 스트림"으로 취급)
  • 장점: 단일 처리 경로 → 로직 일원화, 유지보수 간단
  • 단점: 대규모 과거 데이터 재처리는 배치 대비 비효율적일 수 있음

선택 기준

  • Lambda: 배치의 정확성이 반드시 필요하고, 실시간은 근사치로 충분할 때
  • Kappa: 스트림 엔진 하나로 정확성까지 감당 가능하고, 이중 유지보수를 피하고 싶을 때 (Kafka + Flink 조합에서 흔함)

관련 노트