- Rust로 작성된 고성능 Kafka 대체용 오픈소스
-
고성능 로그 스토리지 엔진 위에 구축된 분산 메시지 스트리밍 플랫폼으로, 안정적인 스트리밍과 자동 리더 교체 기능 제공
-
Raft 합의 프로토콜을 통해 메타데이터 일관성 유지 및 장애 복구 지원
-
세그먼트 기반 파티셔닝으로 부하를 자동 분산하고, 리더십을 라운드로빈 방식으로 회전
-
핵심 기능
-
세그먼트 단위 샤딩으로 토픽을 분할하고, 각 세그먼트별 리더 노드가 쓰기 담당
-
리스 기반 쓰기 펜싱으로 단일 리더만 쓰기 가능, 분할 브레인 방지
-
자동 롤오버로 세그먼트 크기 초과 시 메타데이터 변경 제안 및 리더 교체 수행
-
Sealed Segment Reads 기능으로 과거 데이터 복제본에서 직접 읽기 가능
-
io_uring 기반 고성능 I/O로 Linux 환경에서 높은 처리량 확보
-
클라이언트 프로토콜
- TCP 기반 길이 프리픽스 텍스트 프로토콜 사용
-
REGISTER, PUT, GET, STATE, METRICS 명령으로 토픽 생성, 메시지 송수신, 상태 조회 지원
- 단순한 명령 구조로 어느 노드에나 연결 가능, 자동 포워딩 처리
-
성능 특성
-
쓰기 처리량: 세그먼트당 단일 라이터 구조로 안정적 성능 유지
-
읽기 처리량: 복제본 수에 비례해 확장
-
지연 시간: 평균 1~2 RTT 수준
-
합의 오버헤드 최소화: 데이터 경로가 아닌 메타데이터에만 Raft 적용
-
성능 비교
-
Kafka, RocksDB 대비 높은 쓰기 처리량 및 대역폭
- fsync 비활성화 시 초당 120만 건 이상, 활성화 시에도 유사 수준의 안정적 성능 유지
- MIT License