결제 서비스 스트라이프(Stripe)를 사용하는 개발자들이 오랫동안 겪어온 고질적인 문제, 즉 스트라이프 데이터와 자체 데이터베이스 간의 불일치 문제를 해결해 줄 오픈소스 도구 '드리프트리스(Driftless)'가 공개되었습니다. 드리프트리스는 스트라이프 웹훅(webhook)을 안정적으로 수신하고, 누락된 이벤트를 감지해 백필(backfill)하며, 이 모든 데이터를 사용자의 포스트그레스(Postgres) 데이터베이스에 정확히 반영하는 단일 바이너리 Go 서비스입니다. 이를 통해 개발자들은 스트라이프 API를 직접 호출하거나 복잡한 웹훅 처리 로직을 직접 구현할 필요 없이, 로컬 데이터베이스에서 최신 결제 정보를 조회하고 활용할 수 있게 됩니다.
드리프트리스는 스트라이프 웹훅의 '최소 한 번(at-least-once)' 전달 방식, 순서 뒤바뀜, 그리고 간헐적인 누락 문제에 대한 강력한 해결책을 제시합니다. 기존에는 개발자들이 이러한 문제를 직접 처리하기 위해 많은 시간과 노력을 들여왔지만, 드리프트리스는 웹훅 검증, 중복 제거, 누락된 이벤트 감지 및 복구 기능을 통합적으로 제공합니다. 특히 'verify' 명령어를 통해 사용자의 데이터베이스가 스트라이프와 완벽하게 일치하는지 증명할 수 있으며, 이후에는 'serve' 명령어로 실시간 동기화와 야간 검증을 자동 수행하여 데이터 정합성을 유지합니다. 모든 작업은 읽기 전용(read-only) API 키를 사용하므로 스트라이프 계정에 대한 쓰기 권한은 필요 없습니다.
이러한 드리프트리스의 등장은 스트라이프 연동 개발의 복잡성을 획기적으로 낮춰줄 것으로 기대됩니다. 개발자들은 더 이상 스트라이프 API 호출의 지연 시간이나 웹훅 처리의 불안정성에 신경 쓸 필요 없이, 익숙한 SQL 쿼리를 통해 로컬 포스트그레스 데이터베이스에서 결제 정보를 조회할 수 있습니다. 또한, 데이터 변경 시 `pg_notify`를 통한 알림 기능을 활용하여 애플리케이션 로직을 간소화하고, 중복 처리나 순서 보장에 대한 고민 없이 비즈니스 로직에 집중할 수 있게 됩니다. 이는 서비스의 안정성을 높이고 개발 속도를 가속화하는 데 크게 기여할 것입니다.