대부분의 비동기 작업 처리 시스템, 즉 잡 큐(Job Queue)는 메시지 브로커로 레디스(Redis)를 필수로 요구합니다. 하지만 최근 'CatQueue'라는 새로운 프로젝트가 공개되며 이러한 고정관념을 깼습니다. CatQueue는 노드(Node.js) 및 타입스크립트(TypeScript) 환경에서 레디스 없이 오직 포스트그레SQL(PostgreSQL)만을 이용해 잡 큐를 구현한 것이 특징입니다. 이미 포스트그레SQL을 사용 중인 개발자라면 별도의 인프라 추가 없이 하나의 테이블과 마이그레이션, 그리고 세 가지 메서드만으로 잡 큐를 구축할 수 있습니다.
CatQueue는 기존의 인기 잡 큐 라이브러리인 BullMQ와 비교했을 때 몇 가지 차별점을 가집니다. 특히 I/O 바운드(I/O-bound) 작업 처리에서 강점을 보이는데, 벤치마크 결과 CatQueue는 100개의 작업을 2,340ms 만에 처리하며 초당 43개의 작업을 소화했습니다. 이는 BullMQ가 9,611ms에 10개의 작업을 처리한 것과 비교해 훨씬 빠른 속도입니다. CatQueue는 기본적으로 50개 작업을 한 번에 병렬 처리하는 배치(batch) 방식을 사용하며, Promise.all을 통해 동시에 작업을 시작하여 I/O 대기 시간을 효율적으로 활용합니다. 또한, 멱등성(Idempotency) 키, 시도별 오류 로깅, 자동 정리 기능 등을 내장하여 개발 편의성을 높였습니다.
CatQueue의 등장은 개발자들이 시스템 아키텍처를 단순화하고 운영 비용을 절감할 수 있는 새로운 가능성을 제시합니다. 특히 소규모 팀이나 1인 개발자(solo developer)의 경우, 레디스 인프라를 별도로 관리할 필요 없이 기존 포스트그레SQL 데이터베이스를 활용하여 안정적인 잡 큐를 구축할 수 있다는 점에서 큰 이점을 가집니다. 이는 시스템 복잡도를 줄이고 개발 및 배포 속도를 향상시키는 데 기여하며, 궁극적으로 더 효율적인 서비스 개발과 운영을 가능하게 할 것입니다.