Linkedin에서 Apache Kafka를 개발한 Jay Kreps가 2013년에 쓴 글을 번역 및 해석한 아티클

  • 로그(Log) : 가장 단순하게 추상화된 저장소이며 Append-only만 가능하고, 전체 이벤트가 시간 순서대로 정렬된 자료구조
    • 전통적인 데이터베이스 시스템에서 복제를 구현할 때 로그는 핵심적인 역할을 함
    • 상태 복제 머신을 기반으로 하는 분산 시스템도 사실은 로그를 복제하는 시스템
  • 로그와 테이블은 동일성을 띈다.
    • 은행을 예시로 들면, 로그는 입출금 기록이며 테이블은 계좌 잔액을 나타낸다. 로그로 테이블을 만들 수 있고, 반면 테이블에서 로그를 추출할 수 있음
  • 많은 기업들이 빅 데이터 도입에는 적극적인 반면, 신뢰할 수 있는 데이터 파이프라인 구축에는 관심이 적었음
    • End-to-End 로 데이터를 연결하는 방식은 장애, 메인터넌스, 데이터 파편화, 이벤트 데이터의 발전으로 점점 어려워졌다.
    • 로그(Log)라는 자료구조를 메인 네트워크 레이어로 추상화 시켜야 한다는 동기로 Apache Kafka에 대한 아이디어가 출발함
    • Jay Kreps는 Quora에서 과거 메시지 큐는 인프라 월드에서 매우 마이너한 분야였다고 설명하면서 실시간 데이터를 이벤트 스트림으로 추상화 시켜야 한다고 생각했고, 영속성을 가진 커밋 로그가 적절한 자료구조라고 설명함