제가 공용 AI 워크플로우 관측 가능성 계약에서 적용하는 규칙은 명확합니다. 관측 가능성 실패가 프로덕션 워크플로우를 중단시켜서는 안 됩니다.
이 규칙을 적용하려면 정확한 경계 설정이 필요합니다. 트레이스 전달 오류가 조용히 비즈니스 실패로 변해서는 안 되며, 권한 부여 실패 역시 선택적 텔레메트리(optional telemetry)로 무시될 수 없습니다. 둘 다 동일한 실행 기록에 나타날 수 있지만 매우 다른 대응을 요구하기 때문입니다.
이 기술 노트는 그 차이점을 검토합니다. 공용 계약은 표준화되고 정리된 트레이스 필드와 브릿지 패턴(bridge pattern)을 설명할 뿐이며, 측정 가능한 가용성 보장이나 아래에서 논의되는 복구 동작을 인증하지는 않습니다.
실패한 책임을 명명하라
워크플로우는 비즈니스 작업을 수행하고, 권한 부여 규칙을 평가하며, 트레이스를 방출할 수 있습니다. 이러한 책임들은 동일한 실패 정책을 공유하지 않으면서 코드상에서 인접할 수 있습니다.
권한 확인이 불가능하다면, 시스템은 단순히 권한이 있다고 가정할 수 없습니다. 승인된 작업이 완료된 후 트레이스 목적지가 불가능하다면, 누락된 트레이스를 복구하기 위해 작업을 재실행하는 것은 중복 작업을 초래할 수 있습니다.
따라서 유용한 첫 번째 질문은 “이 예외를 무시해야 하는가?”가 아닙니다. 그것은 “어떤 책임이 실패했으며, 이미 어떤 상태가 알려져 있는가?”입니다.
저는 비즈니스 결과와 관측 가능성 결과를 분리하여 표현할 것입니다. 비즈니스 작업은 확인되었을 수 있지만 트레이스 전달은 보류 중이거나 실패했을 수 있습니다. 이러한 상태는 전체 실행을 일반적인 오류로 대체하는 것보다 더 많은 정보를 제공합니다.
발명된 트레이스 타임아웃
아이템을 사람의 검토(human review)로 라우팅하는 가상의 워크플로우를 생각해 봅시다. 라우팅 작업은 성공을 확인합니다. 이후 관측 가능성 브릿지로의 요청이 시간 초과됩니다.
만약 오케스트레이터가 모든 다운스트림 오류를 전체 워크플로우를 재실행해야 하는 이유로 간주한다면, 두 번째 검토 아이템을 생성할 수 있습니다. 누락된 트레이스가 비즈니스 중복을 야기한 것입니다.
제안된 설계에서는 복구 시 트레이스(trace) 작업을 실행과의 기존 관계를 사용하여 재시도하거나 조정할 것입니다. 라우팅이 실패했다고 가정하지 않습니다. 누락된 가시성(visibility)은 별도의 운영 신호(operational signal)가 노출해야 합니다.
이 가상의 예시는 장애 경계(failure boundary)를 보여줍니다. 이는 실제 중단(outage) 보고서, 구현된 큐 구성(queue configuration), 또는 테스트된 전송 보장(delivery guarantee)을 의미하지 않습니다.
저하된 가시성은 여전히 가시적이어야 한다
실패를 분리한다고 해서 그것들을 무시한다는 뜻은 아닙니다. 트레이스 전달이 반복적으로 실패한다면, 시스템은 그 격차를 드러낼 또 다른 방법이 필요합니다. 그렇지 않으면 “비즈니스 흐름은 계속된다”는 것이 “어떤 증거가 누락되었는지 아무도 모른다”로 변질됩니다.
구현 검토(implementation review)를 위해 저는 트레이스 시도가 어떻게 경계 지어져 있는지, 실행 식별자(execution identity)가 재시도를 거치면서 어떻게 유지되는지, 그리고 누락된 결과(missing outcomes)는 어떻게 조정될 수 있는지 질문할 것입니다. 또한 느린 트레이스 목적지(trace destination)가 비즈니스 경로에 간접적으로 영향을 미칠 만큼 충분한 대기 작업(waiting work)을 축적할 수 있는지 검토할 것입니다.
이것들은 설계 점검 사항이며, 버퍼링이나 특정 타임아웃 정책이 이미 공개 사례에서 존재한다는 주장은 아닙니다.
데이터 최소화(Data minimization)는 여전히 동일한 계약의 일부입니다. 무제한 로컬 로그로 폴백하는 것은 원시 메시지(raw messages), 인증 자료(authentication material) 또는 사적인 운영 페이로드(private operational payloads)를 노출한다면 좋지 않은 복구 방법일 것입니다. 축소된 트레이스는 여전히 승인된 필드와 정제된 참조(sanitized references)를 통해 결정, 위험 및 검토 상태를 설명해야 합니다.
경계 체크리스트
- 비즈니스 성공이 트레이스 전달 성공과 독립적으로 기록됩니까?
- 인가(authorization) 및 무결성 검사(integrity checks)가 선택적 원격 측정 실패 정책 외부에 유지됩니까?
- 트레이스가 재시도하는 것이 비즈니스 효과를 다시 실행하는 것을 피할 수 있습니까?
- 반복적인 트레이스 실패가 별도의 운영 신호를 통해 발견될 수 있습니까?
- 대기 또는 버퍼링이 눈에 띄지 않게 증가하도록 허용되기보다는 경계 지어져 있습니까?
- 저하된 경로들이 동일한 데이터 최소화 규칙을 유지합니까?
- 검토자가 누락된 원격 측정과 부재하는 비즈니스 이벤트를 구별할 수 있습니까?
다음 증거는 제어된 중단 테스트(controlled interruption tests)와 조정 기록(reconciliation records)에서 나올 것입니다. 문서화된 규칙만으로는 런타임이 이를 준수한다는 것을 확립할 수 없습니다.
public observability contract는 이 노트 뒤에 있는 트레이스 필드(trace fields)와 안전 경계(safety boundaries)를 설명합니다. 커버리지 및 검토 결과 캡처는 여전히 수집해야 할 메트릭입니다.
만약 귀하의 트레이스 저장소(trace store)가 응답을 멈춘다면, 귀하의 재시도 정책(retry policy)은 어떤 비즈니스 영향을 반복할 것이며, 어떻게 가시성 격차(visibility gap)를 발견할 수 있을까요?