라이프사이클 훅
훅은 이벤트를 구독하며, 이벤트가 발생하면 여러분의 오퍼레이션 중 하나를 실행합니다. 각 전달은 상태와 함께 저장되므로, 실패한 전달을 찾아 다시 재생할 수 있습니다.
이벤트
레코드 이벤트는 레코드가 생성, 업데이트, 삭제, 게시, 게시 취소될 때 발생합니다. 그 밖의 프로젝트 이벤트는 사용자와 세션, 오퍼레이션의 결과, 완료된 가져오기, 마이그레이션과 일괄 변경, 그리고 조직의 전 과정, 즉 생성부터 구성원 변경까지를 다룹니다. 또 다른 이벤트 세트(팀 구성원, 요금제, 프로젝트, 초대 변경)는 워크스페이스에서 구독합니다.
훅 선언
defineHook 함수는 config에서 이벤트와 실행할 오퍼레이션의 키를 지정합니다. 필터는 이벤트의 최상위 키에 대한 동등 비교로 훅 범위를 좁히며, 보통 모델 하나로 한정합니다. 콘솔에서 설정한 훅은 내장 알림을 대상으로 지정할 수도 있습니다.
전달에 담기는 것
전달은 오퍼레이션 엔드포인트로 가는 HTTP POST입니다. 수명이 짧은 토큰으로 인증되며, 토큰은 X-Foir-Token 헤더에 담기고 Fóir의 JWKS로 검증합니다. HMAC 서명 헤더는 없습니다. 본문에는 레코드 id와 모델 키로 무엇이 바뀌었는지가 담기며, 필드 콘텐츠는 없습니다. 수신자는 레코드를 다시 읽습니다.
추적, 재시도, 데드 레터 큐
각 전달은 상태가 있는 저장된 행입니다. foir hooks 명령은 훅의 실패한 전달을 나열하고, 하나를 재생하며, 엔드포인트를 테스트하기 위한 합성 전달을 보냅니다. 재시도와 서킷 브레이커는 훅이 실행하는 오퍼레이션에 속합니다. 재시도를 모두 소진한 실행은 데드 레터 큐에 쌓이며, 거기서 확인하고 재시도하거나 폐기할 수 있습니다.
순서와 루프
전달 순서는 보장되지 않습니다. 각 전달에는 시퀀스 번호가 있어 수신자가 last-write-wins를 적용할 수 있고, 중복을 버리기 위한 실행 id도 있습니다. 스스로를 트리거하는 훅이 폭주하지는 않습니다. 원인 체인에 이미 있는 오퍼레이션은 다시 실행되지 않으며, 체인은 세 단계에서 멈춥니다.
자세한 내용
라이프사이클 훅 가이드는 이벤트, 훅 선언, 전달 확인과 재생을 다룹니다.