Pathway 심층 분석: Python API + Rust 엔진의 실시간 스트림 처리와 RAG
GitHub 6만 스타를 보유한 Pathway는 독특한 스트림 처리 프레임워크입니다: Python으로 비즈니스 로직을 작성하고 Rust 엔진으로 실행합니다. Differential Dataflow 기반의 증분 계산으로 데이터 변경분만 처리하여 실시간 시나리오에 최적화되어 있습니다. 아키텍처의 핵심은 선언적 패러다임(define-then-run)으로, 개발자가 Python으로 완전한 계산 그래프를 정의하면 pw.run() 시 전역 최적화 후 실행됩니다. 인메모리 처리와 상태 기반 연산(join/window/sort)으로 저지연·고처리량을 보장합니다. RAG 지원은 핵심 강점으로, 문서 변경 시 내장 실시간 벡터 인덱스가 임베딩을 자동 증분 업데이트하여 별도의 벡터 DB가 불필요합니다. 350개 이상의 데이터 소스 커넥터를 지원합니다.
배경
실시간 데이터 처리 생태계는 오랫동안 Apache Flink와 Spark Streaming이 장악해 왔습니다. 그러나 Pathway는 Python으로 로직을 작성하고 Rust 엔진에서 실행하며, Differential Dataflow를 기반으로 한 증분 계산 방식을 통해 이 기존 질서에 도전하고 있습니다. 2026년 초 기준 GitHub에서 6만 개 이상의 스타를 기록한 Pathway는 최근 몇 년간 가장 빠르게 성장하는 데이터 처리 프레임워크 중 하나로 자리 잡았습니다. 이 프레임워크는 전통적인 JVM 기반 솔루션과는 달리, Python 생태계의 접근성을 유지하면서도 Rust의 성능을 결합하여 새로운 대안을 제시하고 있습니다.
Pathway의 등장은 단순한 기술적 변주가 아닌, AI 및 머신러닝 파이프라인 구축에 필요한 실시간 데이터 처리의 패러다임 전환을 의미합니다. 기존 도구들이 배치와 스트리밍을 분리하거나 복잡한 클러스터 관리에 의존했던 것과 달리, Pathway는 개발자가 익숙한 Python 문법으로 선언적 데이터 파이프라인을 정의하고, 백엔드에서 이를 효율적으로 실행하는 구조를 채택했습니다. 이는 특히 RAG(검색 증강 생성)와 같은 AI 애플리케이션에서 데이터의 신선도를 유지해야 하는 요구사항에 부합하는 설계입니다.
심층 분석
Pathway의 아키텍처는 명확한 프론트엔드와 백엔드의 분리로 구성됩니다. 프론트엔드인 Python API는 pandas와 유사한 Table API 스타일을 제공하여 데이터 변환, 집계, 조인等操作을 직관적으로 정의할 수 있게 합니다. 반면, 백엔드는 Rust 엔진으로, 모든 Python 코드는 최종적으로 Rust 실행 계획으로 컴파일되어 스케줄링되고 실행됩니다. 이 설계의 핵심 이점은 Python이 성능 병목 지점이 되지 않는다는 것입니다. 전통적인 Python 데이터 처리는 GIL(전역 해석기 잠금)의 제약으로 인해 진정한 병렬 처리가 어려웠으나, Pathway는 Python을 계산 그래프 정의용으로만 사용하고 실제 실행은 GIL의 제약이 없는 Rust에서 수행함으로써 멀티스레딩, 멀티프로세싱 및 분산 컴퓨팅을 자연스럽게 지원합니다.
Differential Dataflow는 Pathway의 핵심 기술적 기반으로, Microsoft Research의 Frank McSherry가 Naiad 시스템 연구 과정에서 발전시킨 개념입니다. 이 기술의 핵심 아이디어는 전체 결과 세트를 재계산하는 대신 데이터의 '차이'만 전파하고 처리한다는 것입니다. 각 데이터 레코드는 타임스탬프와 가중치(+1은 삽입, -1은 삭제)를携带합니다. 데이터 스트림이 변경될 때 시스템은 '델타'만 처리하고 이 변경 사항을 계산 그래프를 따라 하위 연산자의 출력이 업데이트될 때까지 전파합니다. 이는 자연스러운 순서 없는 데이터 처리, 상태 일관성 보장, 그리고 메모리 효율성을 제공합니다.
Pathway는 'define-then-run' 실행 모델을 채택하여 선언적 패러다임을 구현합니다. 개발자가 `pw.run()`을 호출하기 전까지의 모든 작업은 계산 그래프(DAG)를 구축하는 단계에 불과합니다. `pw.run()` 호출 시 Pathway 엔진은 연산자 융합, 계획 재배열 등의 전역 최적화를 수행한 후 Rust 실행 엔진을 시작합니다. 이는 Spark의 지연 평가와 유사한 철학을 공유하지만, 실행 계층에서는 완전히 다른 접근 방식을 취합니다. 이러한 구조는 복잡한 상태 관리 없이도 join, window, sort와 같은 상태 기반 연산에서 일관성을 유지하게 합니다.
산업 영향
Pathway는 RAG(검색 증강 생성) 아키텍처에 혁신적인 변화를 가져왔습니다. 전통적인 RAG 시스템에서는 문서 변경 시 전체 임베딩을 재생성하고 벡터 데이터베이스를 재빌드해야 했으며, 이는 분에서 시간 단위의 지연과 막대한 리소스 소비를 초래했습니다. Pathway는 `pathway.stdlib.indexing` 모듈을 통해 실시간 증분 벡터 인덱싱을 제공합니다. Google Drive나 SharePoint와 같은 소스에서 문서가 변경되면, Pathway의 스트리밍 커넥터가 변경 사항을 감지하고 변경된 문서만 다시 파싱하고 임베딩합니다. Differential Dataflow는 이 과정의 일관성을 보장하며, 결과적으로 전체 인덱스 재빌드 없이도 지연 시간을 초 단위로 줄일 수 있습니다.
이러한 기능은 Standard RAG, Adaptive RAG, Multimodal RAG, Private RAG 등 다양한 RAG 패턴을 지원합니다. 특히 Private RAG의 경우 Ollama와 로컬 모델을 사용하여 데이터를 외부로 유출하지 않고도 실시간 RAG를 구현할 수 있게 합니다. 또한, Pathway는 350개 이상의 데이터 소스 커넥터를 지원하여 Kafka, PostgreSQL, AWS S3, Airbyte 통합 소스 등 거의 모든 현대적 데이터 소스에 연결할 수 있습니다. Airbyte 통합을 통해 단일 구성 블록으로 300개 이상의 소스에 연결하고 CDC(변경 데이터 캡처)를 자동으로 처리할 수 있어, 데이터 엔지니어의 부담을 크게 줄여줍니다.
전망
Pathway의 배포 모델은 유연성을 극대화합니다. 소규모 애플리케이션의 경우 단일 Python 프로세스로 실행 가능하며, Docker 및 Kubernetes를 통한 확장도 지원합니다. Kubernetes 배포 시 OpenTelemetry 모니터링, Prometheus 메트릭 노출, 그리고 상태 지속성 API를 통해 장애 복구 시 전체 스트림 재재생 없이 최신 스냅샷에서 복구할 수 있습니다. 라이선스 모델은 BSL(Business Source License)을 채택하여 무료 버전에서는 At-least-once 일관성과 핵심 기능을 제공하고, 기업용 버전에서 Exactly-once 일관성, SharePoint 고급 커넥터, SLA 지원을 제공합니다.
Pathway는 Python 생태계의 데이터 엔지니어와 AI 엔지니어에게 특히 유망한 선택지입니다. Java나 Scala 학습 곡선을 피하면서도 생산급 실시간 파이프라인을 구축해야 하는 팀, 혹은 Flink나 Spark와 같은 복잡한 JVM 기반 인프라를 유지보수할 자원이 부족한 스타트업에게 적합합니다. 특히 실시간 AI 파이프라인 구축 시 JVM의 복잡성을 도입하지 않고도 고성능을 달성해야 하는 경우에 Pathway는 강력한 대안이 될 것입니다. 향후 AI 애플리케이션의 실시간성이 더욱 중요해짐에 따라, Pathway와 같은 증분 계산과 Python 네이티브 접근 방식을 결합한 프레임워크의 수요는 지속적으로 증가할 것으로 예상됩니다.