Cron, HTTP 엔드포인트 및 큐 워커를 이용한 야간 데이터 정리
아웃바운드 웹훅 재시도를 위한 자동 정리 작업은 데이터가 증가함에 따라 예상치 못하게 리소스 집약적이 될 수 있습니다. 단순한 야간 삭제 작업으로는 증가하는 볼륨을 따라가지 못할 수 있습니다. 이를 관리하기 위해 cron 작업은 정리 작업을 시작하기 위한 공개 HTTP 엔드포인트를 트리거해야 합니다. 대규모 삭제의 경우, 이 엔드포인트는 제한된 배치로 데이터를 처리하는 멱등성 큐 워커에게 작업을 위임해야 합니다. 재시도 원장(retry ledger)은 고유한 배치 키를 사용하여 조건부 삭제를 수행함으로써 반복적인 정리 작업이 의도하지 않은 파괴적인 작업을 유발하지 않도록 보장하는 데 중요합니다.워커는 중복 메시지를 안전하게 처리하도록 설계되어야 하며, 이를 no-op으로 취급해야 합니다. 재시도는 일반적이므로 이 멱등성은 필수적이며 시스템은 이를 강력하게 처리해야 합니다. Node.js cron HTTP 엔드포인트는 멱등성 키를 가진 단일 제한된 배치를 신속하게 게시하여 중복 작업을 방지할 수 있습니다. 실제 삭제는 시간 제한이 있는 cron 작업 자체가 아닌 전용 워커에 의해 처리됩니다.큐 워커는 의도적으로 단순해야 하며, 하나의 제한된 배치를 처리하고, 레코드를 삭제하며, 성공적인 트랜잭션 후에만 완료를 승인해야 합니다. 이 설계는 재시도를 무해하게 만듭니다. 영구적인 실패를 위해 데드-레터 큐(dead-letter queue)를 구현하는 것이 권장되며, 문제가 있는 메시지를 검사하고 다시 보내는 방법을 제공합니다. 멱등성 메커니즘이 다양한 실패 조건에서 올바르게 작동하도록 재시작 시나리오를 테스트하는 것이 중요합니다.관찰 가능성(Observability)은 배치 ID, 개수 및 상태에 대한 자세한 로깅과 함께 핵심입니다. 큐 메시지에 대량의 데이터를 넣지 마십시오. 복잡한 다단계 정리 프로세스의 경우 Temporal 또는 Airflow와 같은 워크플로우 엔진이 더 적합합니다. 설명된 패턴은 더 간단한 단일 패스 보존 작업에 가장 적합하며 공개적으로 액세스 가능한 엔드포인트가 필요합니다.운영 루프는 트리거, 인큐, 클레임, 삭제, 기록 및 승인을 포함합니다. 처리되지 않은 배치 연령 및 데드-레터 큐 깊이와 같은 주요 메트릭을 정기적으로 모니터링하는 것이 필수적입니다. 보존 정책을 변경하기 전에 드라이런(dry-run) 쿼리를 실행하면 우발적인 데이터 손실에 대한 안전망을 제공합니다. 이 전체 프로세스는 근무 시간 외에도 이해하고 관리할 수 있을 만큼 간단해야 합니다.