Postgres만으로 구현하는 내구 워크플로우 시스템 Absurd 등장!
Postgres를 활용하여 내구성이 뛰어난 워크플로우(Durable Workflow)를 구현하는 Absurd 소개
별도의 메시지 브로커(Message Broker)나 조정 계층(Coordination Layer) 없이 Postgres 데이터베이스(Database) 내에서 모든 기능 수행
SDK 경량화 및 언어 독립성(Language-agnostic)을 통해 개발 편의성(Development Convenience)을 제공
Postgres를 '만능 서버(Everything-Server)'로 보는 긍정적 시각(Positive View)과 함께 기술 확장에 대한 기대감 존재
Postgres를 활용한 내구 워크플로우의 핵심 원리
Absurd는 내구성이 필요한 작업을 Postgres 데이터베이스(Database)의 저장 프로시저(Stored Procedure)를 통해 처리한다. 작업은 여러 단계(Step)로 나뉘며, 각 단계의 성공적인 완료 시 반환값이 저장된다. 작업 실패 시에는 마지막 체크포인트(Checkpoint)부터 재시도하며, 'sleep' 또는 'await event'를 통해 특정 시간 또는 이벤트(Event)를 기다릴 수 있다. 데이터 격리 아키텍처(Data Isolation Architecture)를 통해 상태 관리의 복잡성을 줄였다.
SDK 경량화 및 언어 독립성 확보
Absurd는 SDK를 가볍게 유지하여 다양한 프로그래밍 언어에서 사용할 수 있도록 설계되었다. 제공되는 SDK는 TypeScript, Python, Go를 지원하며, 개발자는 각 언어에 맞는 방식으로 워크플로우를 정의하고 실행할 수 있다. 언어 독립성(Language-agnostic)은 특정 기술 스택에 종속되지 않고 유연하게 시스템을 구축할 수 있게 해준다. 데이터 미저장 정책(Zero-Retention Policy)을 통해 보안성을 강화했다.
Postgres의 역할 확장에 대한 커뮤니티 반응
커뮤니티에서는 Postgres가 다양한 기능을 통합하는 '만능 서버(Everything-Server)'로 진화하는 것에 주목한다. Postgres의 확장성(Extensibility)을 활용하여 복잡한 시스템을 단순화하려는 시도로 평가하며, 데이터베이스(Database) 레이어에서 워크플로우를 처리하는 방식에 대한 긍정적인 반응이 주를 이룬다. 하지만, Postgres에 모든 책임을 집중시키는 것에 대한 잠재적인 성능 및 관리상의 문제(Performance and Management Issues)에 대한 우려도 제기된다.