SQLFlow 개발자가 블루스카이(Bluesky)의 모든 공개 포스트를 실시간으로 분석하는 데모를 선보였습니다. 이 데모는 256MB 미만의 메모리만으로 블루스카이의 방대한 데이터 스트림(firehose)을 처리하고, 언어별 포스트 수를 집계하여 포스트그레스(Postgres) 데이터베이스에 저장한 뒤, 이를 웹 대시보드에서 시각화하는 전체 과정을 보여줍니다. 이는 현대 데이터 스택의 복잡성과 높은 리소스 요구사항에 대한 실용적인 대안을 제시하려는 시도입니다.
SQLFlow는 웹소켓(websocket)을 통해 블루스카이의 제트스트림(Jetstream)에서 포스트 데이터를 읽어 들여 500개 메시지 단위로 덕DB(DuckDB)에 로드합니다. 이후 SQL 쿼리를 사용하여 1분 단위로 언어별 포스트 수를 집계하고, 이 결과를 포스트그레스에 저장합니다. 모든 파이프라인과 API 설정은 YAML 파일과 SQL 쿼리로 정의되며, 렌더(Render) 인스턴스에서 데이터베이스와 함께 총 512MB 메모리 내에서 실행됩니다. 특히, 이 시스템은 실시간으로 데이터를 처리하며, 어떠한 정적(static) 또는 스테이징(staged) 과정 없이 모든 차트가 라이브 데이터를 직접 쿼리합니다.
이 프로젝트는 데이터 처리 과정을 소프트웨어 개발처럼 다루려는 SQLFlow의 철학을 잘 보여줍니다. 즉, 관측 가능성(Observability), 통합 테스트, 성능, 그리고 실제 사용자 경험(UX)을 강조합니다. 복잡한 분산 시스템 대신 단일 워커, 단일 포스트그레스, 단일 API 구조를 통해 효율적인 리소스 사용과 간결한 데이터 스택을 구현한 점이 인상적입니다. 이는 대규모 데이터 분석 환경을 구축하는 데 드는 비용과 복잡성을 줄이고자 하는 개발자들에게 중요한 시사점을 제공하며, 스트리밍 데이터 처리의 접근 방식을 재고하게 만듭니다.
