Files
document-haness/docs/clean-architecture-backend-template/tech-log-studio/http-failure-classification/reference/reference-one-sqlstate-with-two-contributors-fails-startup.md
T

2.2 KiB

kind, slug, title, topic, topicName, project, status, sourceRevision, source
kind slug title topic topicName project status sourceRevision source
REFERENCE one-sqlstate-with-two-contributors-fails-startup 같은 SQLState 를 둘이 등록하면 값이 같아도 시작을 실패시킨다 http-failure-classification HTTP 실패 분류와 재시도 안전성 clean-architecture-backend-template 게시 전 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916
final/document.md#a05
final/document.md#5-1
final/document.md#a05 §7.1

같은 SQLState 를 둘이 등록하면 값이 같아도 시작을 실패시킨다

여러 모듈이 같은 SQLSTATE 매트릭스에 기여할 때는 최종 값이 같더라도 중복 등록을 허용하지 않는다. 매핑 값뿐 아니라 어느 모듈이 그 항목을 소유하는지도 계약의 일부로 본다.

관계

  • 실패 어휘 세 층과 그 사이를 잇는 SQLState 매트릭스 이 규칙이 적용되는 매핑 계층을 설명한다.
  • 인식하지 못한 SQLSTATE 는 추측하지 않는다 매핑 누락과 중복을 모두 명시적으로 다루는 짝이 되는 결정이다.

목적

last-writer-wins 병합이 매핑 소유권 충돌을 숨기지 못하게 한다.

규칙

  1. 한 SQLSTATE는 한 contributor가 소유한다.
  2. 두 contributor가 같은 SQLSTATE를 등록하면 매핑 결과가 같아도 startup validation을 실패시킨다.
  3. 충돌을 해결하려면 한쪽 등록을 제거하거나 소유권을 하나로 합친다.
  4. map merge 결과만 비교하지 않고 contributor identity를 함께 검사한다.

적용 조건

여러 모듈이 같은 SQLSTATE 또는 오류 코드 매트릭스에 항목을 기여할 때

여러 기여자의 등록 결과가 런타임 failure classification을 결정할 때

예외

기여자가 하나뿐인 매트릭스에는 중복 소유권 검사가 필요하지 않다.

중복 등록 자체를 계약으로 허용하려면 어떤 contributor가 우선하는지 별도 규칙과 검증이 있어야 한다. 현재 이 프로젝트는 그 방식을 선택하지 않는다.

예시

모듈 A와 B가 모두 같은 SQLSTATE를 같은 category로 등록해도 “결과가 같으니 괜찮다”고 병합하지 않는다. 둘 중 누가 이 매핑을 변경해야 하는지 알 수 없기 때문이다.