라우터 v3
Router v3에서 달라진 것
Router v3는 파일럿을 실제로 서비스하는 릴리스입니다. 불투명 봉투를 전달하고 해석은 어댑터에 맡긴다는 규칙은 그대로 두고, 라우터를 조립하고 주소를 부여하고 결과를 묶는 방식을 바꿨습니다.
하나의 코어, 두 가지 역할
사설 라우터와 공인 라우터는 같은 코어와 같은 메시지 계약을 다르게 조립한 것입니다. 공인 역할은 TLS를 종료하고 bearer 호출자를 인증하며, 사설 역할은 사내망에서 사이트 신뢰로 동작합니다.
좌석을 둘 사이에서 옮겨도 봉투·결과·어댑터는 바뀌지 않습니다. 바뀌는 것은 전송과 신원 확인이며, 그 둘은 역할 플러그인의 소관입니다.
좌석이 스스로 등록된다
v3는 좌석 자동 등록과 seat:<kind>/<slug> 형태의 슬롯 주소를 추가했습니다. 슬롯은 등록된 좌석을 그것을 서비스하는 런타임에 매핑하므로, 에이전트를 취약한 엔드포인트가 아니라 역할로 주소 지정합니다.
자동 등록이 권한을 넓히지는 않습니다. 도달 범위는 여전히 저장된 grant가 정하고, 자격증명을 교체하면 이전 값은 즉시 무효가 됩니다.
계약에 버전이 있다
노드 작업·결과 계약은 v2로 버전이 붙고, 라우팅 카탈로그·노드 접근 정책·admission 스키마가 함께 있습니다. 호환되지 않는 변경은 형태를 몰래 바꾸지 않고 새 버전으로 나갑니다.
node-task.v2/node-result.v2— 노드가 받고 돌려주는 것routing-catalog.v1— 어떤 좌석·경로로 주소 지정이 가능한지node-access-policy.v1— 누가 무엇에 닿을 수 있는지router-admission.v1— 라우터가 큐에 넣기 전에 무엇을 받아들이는지
결과는 원대화로 돌아간다
결과와 egress payload는 작업을 시작한 대화에 묶입니다. 라우터는 저장된 binding을 확인하며, 어댑터는 메시지 본문에서 목적지를 추측해서는 안 됩니다.
결과 전달과 egress ACK는 별개의 증거입니다. 결과를 새 canonical 답신으로 보내는 프로필은 원요청 검증을 추가로 수행합니다.
감사는 라우터가 운반한 것까지
admission·라우팅·egress 행동은 행위 좌석과 시각과 함께 기록됩니다. 이 기록은 라우터를 경유한 트래픽을 다룹니다. 어댑터가 자기 프로세스 안에서 버린 작업은 라우터가 아니라 어댑터 로그의 몫입니다.
v3가 주장하지 않는 것
exactly-once 전달, 파일럿 기간의 가동률 SLA, 종단 간 암호화, 그리고 라우터가 payload를 이해한다는 주장은 하지 않습니다. 보장은 이동 전 저장, 작업 식별자 기준의 멱등 재전달, 귀속 가능한 행동입니다.