CRM 최소 변경 이벤트
Fingerprint, revision, assessment reference만 보낸다. 이름, 진단, 특징, 점수, 설명, 프로필 원문은 보내지 않는다.
업무 흐름 · 선택안 B
CRM은 최소 변경 신호만 보낸다. 예약서비스는 최신 revision으로 수렴시키고 병원별 처리 기회를 공정하게 배분하며, 예약 transaction에서 기존 약속을 보호한다. 프로필 원문은 이 경계를 넘지 않는다.
Fingerprint, revision, assessment reference만 보낸다. 이름, 진단, 특징, 점수, 설명, 프로필 원문은 보내지 않는다.
Producer, signature, issuer, audience, hash, schema, replay window와 병원 범위를 검증한다. 중복은 합치고 이전 작업은 stale로 만든다.
병원 전체에서 HELD를 PROPOSED보다 먼저 처리한다. 전역·병원별 동시성, keyset page, DB lease와 작업 상한을 적용한다.
처리 시점에 opaque reference를 고정 host HTTPS로 조회한다. 응답 크기, schema, identity, timeout과 동시성을 엄격히 제한한다.
현재 revision과 예약 version을 잠근다. 최신 상태의 대상만 변경하고 allocation 교체와 outbox 기록을 한 transaction에서 끝낸다.
결과 분류, 최소 감사 정보와 낮은 cardinality 지표만 남긴다. tenant, clinic, patient, appointment, event ID를 metric label로 쓰지 않는다.
현재 proposal을 최신 유효 후보로 대체한다. active allocation을 해제할 일은 없다.
유효한 hold는 유지한다. 바꿔야 하면 새 allocation을 먼저 확보한 뒤 기존 것을 해제한다. 대체 자원이 없으면 중복 allocation 없이 `PROPOSED`로 돌아간다.
고객과 확정한 약속을 그대로 둔다. 프로필 이벤트만으로 취소·이동·교체하거나 조용히 다시 해석하지 않는다.
Jitter와 총 경과 시간 상한을 적용해 재시도한다. 만료 lease는 회수하고, 한도를 소진한 작업은 범위를 지정한 preview와 redrive가 필요하다. 더 최신 revision이 오면 이전 작업은 stale다.
제한된 envelope를 암호화해 격리하고 안전하지 않은 유입을 멈춘다. 보안·개인정보 담당자와 CRM 담당자가 함께 조사하며 일반 retry로 돌리지 않는다.