참가자의 상호 운용성
(섹션: 생태계 및 네트워크)
1) 참가자의 상호 운용성은 무엇입니까
상호 운용성-비즈니스 결과의 보안, 개인 정보 보호 및 재현성을 유지하면서 합의 된 프로토콜 및 계약을 통해 서로 다른 조직 (운영자, 스튜디오, PSP, KYC/AML 제공 업체, 브리지, 계열사, 분석가 및 거버넌스) 의 능력.
목표:- 통합 시간 (N)
- 예측 가능성 (임계 흐름에 의한 안정적인 SLO/SLA).
- 보안 및 준수 (최소 충분한 권리, 감사).
- 고장없는 진화 (버전, 이전 호환성).
2) 상호 운용성 수준 (레이어 모델)
1. 전송 및 네트워크: TH/2/3, gRPC/QUIC, WebSockets, P2P, mTLS.
2. 식별 및 신뢰: org _ id, peer _ id,
3. 이벤트 및 데이터: 통합 이벤트 스키마, 자산/네트워크 카탈로그, demempotency.
4. 프로세스 및 비즈니스 계약: 지불/결제, 귀속, 위험 신호, 제한 복제.
5. 관리/법률 계층: SLA/SLO, DPA, 라이센스, 거버넌스 규정.
6. 관찰 및 품질: SLI/SLO, 로깅, 추적, 감사.
각 계층에는 자체 계약, 테스트 및 호환성 정책이 있습니다.
3) 디자인 원칙
계약 우선: 이벤트는 구현 전에 공식화됩니다.
뒤로 호환되는 변경 사항: "필드 만 추가" 전략 및 사용하지 않는 창 90 일 이상.
기능 협상: 참가자는 지원되는 기능을 교환하고 공통 하위 집합을 선택합니다
격리 및 PoLP: 액세스 및 제한은 "최소 필요" 로 발행됩니다.
이념과 결정론: 반복 안전 작업, 예측 가능한 충돌 규칙.
기본 관찰 가능성: 요청/이벤트의 추적 ID 상관 관계, 검증 가능한 청구서.
데이터 최소화: 원격 측정/레이블에 PII 부족, 가명.
4) 역량 협상
악수 할 때 참가자는 기능과 버전의 선언문을 게시합니다.
예 (YAML):yaml participant:
org_id: "ORG:ACME"
versions:
api: "2. 6. 1"
events: "1. 9. 0"
capabilities:
payouts: { create: true, cancel: true, currencies: [USD, EUR, USDC] }
kyc: { level: ["basic","enhanced"], sla_minutes_p95: 15 }
bridge: { proof: ["light","zk"], challenge_supported: true }
telemetry: { qos: ["P0","P1"], traces: true }
limits:
payouts_daily_usd: 1_000_000 rate_limits: { create_per_minute: 500 }
호환성 엔진은 당사자 표현과 일치하고 작업 프로필을 선택합니다 (예: '지불: v2', '이벤트: v1. 9`).
5) API/이벤트 계약 및 스키마
API 계약: OpenAPI/gRPC IDL, 명확한 오류 코드, demempotent 키 ('Idempotency-Key'), 신체 제약 조건.
이벤트 모델: '예금. ',' 지불. ',' 다리. ',' kyc. ',' 위험. ',' 제품. '-안정적인 필드로.
디렉토리/카탈로그: 네트워크, 자산, 결제 방법, SDK 버전, 지역/관할 구역.
CI에서 테스트 한 데이터 계약은 타임 락과의 거버넌스를 통해 변경됩니다.
yaml event:
id: uuid ts: timestamp_utc type: payout. created payout. finalized bridge. lock...
src_org: string dst_org: string payload: object trace_id: string idempotency_key: string signature: string # source signature
6) 수정 및 호환성
시맨틱 버전: 'MAJOR. 미노르. PATCH '.
규칙: MINOR/PATCH-역 호환; 메이저 - "어댑터" 와 병렬 존재, 90 일 이상 사라짐.
마이그레이션 플레이 북: API/이벤트/디렉토리 용 마이그레이션 템플릿; 오래된 형식의 에뮬레이터.
7) 통합 패턴 (패턴)
요청 응답 + 이념성: 안전한 지불/제한/준비금.
이벤트 주도: "진리의 원천" 은 변화를 보냅니다. 가입자는 상점을 구체화합니다.
송신기/받은 편지함: 데이터베이스에서 이벤트의 원자 출판; 가입자의 dempotent 수신.
SAGA (오케스트레이션/안무): 조정 된 다중 도메인 연산 (예: "popolneniye → igrovoye sobytiye → vyplata").
듀얼 라이팅 가드: 아웃 박스가없는 직접 이중 항목이 없습니다.
재생/백필: 주문 및 마무리가있는 장애 조치.
8) 보안과 신뢰
mTLS와 'org _ id/peer _ id' 에 대한 키 바인딩.
이벤트 서명, 신탁 로그 (누가 및 서명/수신).
RBAC/ABAC 및 할당량: 역할 별 권리, 운영/볼륨 별 제한.
비밀 관리: 로테이션, "오래 지속되는" 토큰 금지, 짧은 스코프.
PII/개인 정보 보호: 토큰 화, 지역 데이터 분리 (EU/ROW), DSR 프로세스 (삭제/내보내기).
남용에 대한 보호: 속도 제한, 사기 방지 신호, 제재 점검.
9) SLI/SLO 및 상호 운용성 관찰
SLI (예):- 'p95 Time-to-Acknowledge'.
- 'p95 End-to-End' (→ 최종/실행 생성).
- 이벤트/운영 유형별 '성공률'.
- '스키마/계약 준수%' (유효한 메시지).
- 'Proof Coverage%' (서명/첨부 된 증거의 비율).
- '오류 예산 번' P0/P1.
- P0 (지불/브리지): p95 E2E 5%, Ack 소 2 초.
- P1 (제품): 신선도 p95 체 3 분, 규정 준수 9%.
- 데이터 계약: Drift MTTA
상호 작용 작전, 계약 건강, 대기 시간 및 성공, 스키마 드리프트, 보안 및 키.
10) 호환성 행렬 (테스트 설계)
참가자 × 스크립트 × 버전 매트릭스:- 시나리오: 지불, 예금, 교량, 위험, 제품, 원격 측정.
- 버전: API v2. 6/v2. 5, 이벤트 v1. 9/v1. 8.
- 네트워크 모드: 정상, 열화, 역류, DA 지연.
- 관할권: EU/UK/TR/LA-다른 카탈로그 및 규칙.
자동 테스트: 계약 테스트 (생산자/소비자), demempotency, 재 시도/보상, 스키마 린터, 로드 프로파일.
11) 참조 체계 및 카탈로그
기능 카탈로그 (SQL)
sql
CREATE TABLE capabilities (
org_id TEXT,
cap_name TEXT,
version TEXT,
params JSONB,
PRIMARY KEY (org_id, cap_name)
);
계약/버전 등록
sql
CREATE TABLE contracts (
name TEXT, kind TEXT, -- api events catalog version TEXT, status TEXT, -- active deprecated retired breaking BOOLEAN DEFAULT FALSE,
effective_from TIMESTAMPTZ,
deprecates_at TIMESTAMPTZ,
PRIMARY KEY (name, version)
);
호환성 모니터링
sql
SELECT name, version, 100. 0SUM(CASE WHEN compliant THEN 1 END)/COUNT() AS compliance_pct
FROM contract_checks
WHERE ts >= now() - INTERVAL '7 days'
GROUP BY name, version;
12) 구성 (YAML)
정확한 정책
yaml versioning:
events: { compatibility: "BACKWARD", deprecate_days: 90 }
api: { parallel_majors: true, support_minors: 2 }
이념과 반복
yaml idempotency:
header: "Idempotency-Key"
ttl_hours: 72 conflict_policy: "prefer-latest-payload-with-signature"
QoS 클래스
yaml qos:
P0: { ack_timeout_ms: 2000, retries: 3, backoff_ms: [100,400,800] }
P1: { ack_timeout_ms: 5000, retries: 2 }
P2: { best_effort: true }
13) 운영 절차
일일: 계약/체계, 만료 된 키, SLO 연소에 대한 준수 보고서.
주간: 상호 운용성위원회 (새로운 기회, 이주, 탈퇴).
출시 전: 계약 테스트, "유리" 메트릭이있는 카나리아, 롤백 계획.
인시던트: 단일 상태 채널, 파트너를위한 메시지 템플릿, 사후
14) 플레이 북 사건
A. 스키마/계약 드리프트
1. "엄격한 모드" 사용 (부적절한 메시지 차단)
2. 사건을 열고 출처를 알리고
3. diff를 생성
4. 어댑터/수정을 해제하고
5. 사후 및 상인방 업데이트.
B. Bulk 재생/이중 메시지
1. demempotence/keys를 확인하십시오
2. 디 덤업 필터를 켜고
3. 시끄러운 생산자를 제한하고
4. 상점 창의 재 계산.
C. ack 대기 시간/결점 증가
1. P0의 우선 순위를 정하고 소비자를 늘리십시오
2. P2 샘플링을 일시적으로 줄이십시오
3. 경로 및 네트워크 병목 현상 분석.
D. 회원 핵심 타협
1. 철회, 로테이션, 신뢰할 수있는 레지스트리 업데이
2. 중요한 배치/인증서의 재계약
3. 행동 감사, 파트너에게보고하십시오.
E. 디렉토리 불일치 (자산/네트워크)
1. 검역 충돌 메시지,
2. 카탈로그 롤백
3. 골재의 재 계산,
4. 패치 게시.
15) 구현 점검표
1. 레벨 및 계약 (API, 이벤트, 디렉토리, 키) 을 정의하십시오.
2. 기능 협상 및 버전/기능 레지스터를 실행하십시오.
3. demempotency, 쿼터, QoS, 서명 및 mTLS를 포함합니다.
4. SLI/SLO, 대시 보드 및 경고 설정 (Ack, E2E, 준수).
5. 계약 테스트 및 호환성 테스트 매트릭스를 자동화하십시오
6. 마이그레이션 및 마이그레이션 절차를 입력하십시오 (MAJOR 병렬).
7. 카탈로그/개인 정보 보호 및 액세스 규칙을 정기적으로 검토하
16) 용어집
역량 협상-지원되는 기능 및 작업 프로필을 조정합니다.
계약 우선-디자인은 구현 전에 공식 계약을 통해 인터페이스됩니다.
Idempotency-반복 보안 작업.
스키마/계약 드리프트-실제 메시지와 선언 된 계약 간의 불일치.
PoLP는 필요한 최소 권리의 원칙입니다.
준수% 는 계약과 일치하는 메시지/요청의 백분율입니다.
결론: 참가자 상호 운용성은 계약, 버전, 기능 및 관찰 가능성의 관리 시스템입니다. 이 프레임 워크를 따라 생태계는 네트워크 수준과 신원에서 프로세스 및 거버넌스에 이르기까지 빠른 통합, 지속 가능한 비즈니스 흐름 및 고장없이 안전한 진화를 제공합니다.