Kafka
-
카프카를 탄생시킨 핵심 설계 원칙: 2011 NetDB 논문과 초고처리량 아키텍처ARCHIVE 2026. 10. 10. 09:02
참고: 2011년 아테네에서 열린 ACM SIGOPS NetDB 워크숍에서 제이 크렙스(Jay Kreps), 네하 나르케데(Neha Narkhede), 준 라오(Jun Rao)가 발표한 카프카 창립 논문 "Kafka: a Distributed Messaging System for Log Processing"과 [[코딩하는기술사]]의 아키텍처 분석 강의를 바탕으로 정리한 기술 분석입니다.📌 핵심 요약2011년 공개된 아파치 카프카(Apache Kafka) 창립 논문은 전통적인 엔터프라이즈 메시지 큐의 무거운 보장(2PC 분산 트랜잭션, 메시지별 영속성, B-Tree 인덱스, 임의 삭제)을 과감히 버리고, 추가 전용 로그(Append-Only Log), 오프셋 기반 주소화, 리눅스 sendfile 제로카피..
-
카프카(Kafka)를 메시지 큐로만 쓰면 안 되는 이유: 'The Log'와 분산 커밋 로그 아키텍처ARCHIVE 2026. 9. 21. 21:14
참고: 본 글은 링크드인(LinkedIn)의 분산 인프라를 설계하고 아파치 카프카(Apache Kafka)를 창시한 제이 크렙스(Jay Kreps)의 기념비적 논고, "The Log: What every software engineer should know about real-time data's unifying abstraction" (2013)의 핵심 통찰을 바탕으로 현대 분산 시스템과 데이터베이스 아키텍처의 기저 원리를 심층 분석합니다.📌 한 줄 요약카프카는 단순한 고성능 메시지 큐가 아니라, 물리적 시계의 불완전성을 논리적 순번(Offset)으로 극복하는 분산 커밋 로그(Distributed Commit Log)이며, $O(N^2)$ 거미줄 파이프라인을 $O(N)$으로 단순화하고 모든 분산 시스..
-
데이터 일관성과 메시징: Outbox 패턴과 대안들ANYTHING 2024. 11. 28. 09:41
현대 소프트웨어 시스템에서는 데이터베이스와 메시지 브로커(Kafka, RabbitMQ 등)를 연동하여 데이터를 저장하고 이벤트를 전달하는 작업이 흔합니다. 이 과정에서 가장 큰 과제는 데이터 일관성을 보장하는 것입니다. 데이터베이스에 작업이 성공적으로 기록되었지만 메시지가 유실되거나 중복 전송되는 경우, 시스템의 신뢰성이 떨어질 수 있습니다.이 글에서는 데이터베이스와 메시지 브로커 간의 일관성을 보장하기 위한 대표적인 아키텍처인 Outbox 패턴과 함께, 이를 대체하거나 보완할 수 있는 몇 가지 대안을 살펴봅니다.Outbox 패턴: 데이터 일관성의 기본 솔루션1. Outbox 패턴이란?Outbox 패턴은 데이터베이스와 메시지 브로커 간의 작업을 분리하면서도 일관성을 보장하는 아키텍처입니다. 애플리케이션에..