콘텐츠로 이동

멱등 작업

Source URL: https://docs.bullmq.io/patterns/idempotent-jobs

실패한 작업을 재시도하는 기능을 활용하려면, 작업은 실패를 고려해 설계되어야 합니다.

즉, 작업이 첫 시도에서 성공적으로 완료되든, 처음에는 실패했다가 재시도에서 성공하든 시스템의 최종 상태에는 차이가 없어야 합니다. 이를 멱등성이라고 합니다.

이 동작을 구현하려면 작업을 가능한 한 원자적이고 단순하게 유지해야 합니다. 한 번에 여러 다른 작업(예: 데이터베이스 업데이트, API 호출 등)을 수행하면 프로세스 흐름을 추적하기가 어려워지고, 예외가 발생했을 때 필요하다면 부분적으로 진행된 작업을 롤백하기도 어려워집니다.

작업이 단순할수록 디버깅, 병목 지점 식별 등도 더 쉬워집니다.

필요하다면 flow 패턴에서 설명한 대로 복잡한 작업을 분할하세요.