App 간 연동 방식 선택하기
현재 조회, 사실 전달, 집계, 호스트 기능 중 필요한 경로를 고릅니다.
App 간 연동 방식 선택하기
요구에 맞는 경로를 고르고 해당 구현 가이드로 진행합니다. 코드를 쓰기 전에 소유 App, 사용자 권한, 상대 App을 사용할 수 없을 때의 동작을 정하세요.
| 필요한 일 | 방식 | 구현 안내 |
|---|---|---|
| 다른 App의 현재 레코드 선택·조회 | 인가된 Resource Reference | Resource Reference |
| 커밋된 사실에 반응 | 공개 Event와 멱등 소비자 | 이벤트와 비동기 작업 처리하기 |
| 여러 App 지표를 나란히 표시 | App 소유 Dashboard widget | Dashboard Widget 추가 |
| 제한된 Resource 관계를 한 표로 구성 | Core Resource Composition | Dashboard Widget 추가 |
| 여러 사실로 통합 지표 유지 | 소비자 소유 Event projection | 이벤트와 비동기 작업 처리하기 |
| 전자결재·비즈니스 프로세스 실행 | 전용 Core 런타임 계약 | 전자 결재, 업무 프로세스 |
| 다른 App의 사용 가능 상태 보장 | Manifest 선행 조건과 별도 데이터 경로 | App Manifest 계약 |
다른 App의 패키지 import·테이블 조회·FK·트랜잭션 공유는 하지 않습니다. 하나의 불변 조건을 위해 양쪽에서 원자적으로 써야 한다면 업무 소유자를 다시 정합니다.
확인
소유자와 데이터 경로가 명확해야 합니다. 선택한 방식에 맞게 소유 App 사용 불가, 참조 거부, 중복 Event, 오래된 projection을 검사합니다.
현재 레코드와 채택 당시 증거
{app_key, resource_key, resource_id}를 저장하며 resource_id에는 소유 App이 정한 공개 식별자를 사용합니다. 소유자가 현재 사용자·범위·시점·목적에 맞는 안전한 뷰를 반환합니다. 표시용 fallback은 현재 상태가 아닙니다. 없음과 접근 거부를 구분하려고 소유 테이블을 조회하지 마세요.
마감 시 채택한 내용을 보존해야 한다면 인가된 snapshot에 as_of, revision, content hash를 남깁니다. 증거임을 표시하고 현재 상태가 필요할 때 다시 resolve합니다. 보호 필드는 snapshot·검색·디버그 출력에서 제외합니다.
available, absent, disabled, failed, stale, unauthorized를 구분합니다. 부재 fallback은 absent에만 적용하며 거부나 실패를 추측값으로 대체하지 않습니다.
사람을 고르는 필드는 필요한 선택 프로필의 directory.party를 사용합니다. Membership eligibility는 후보를 줄일 뿐 권한을 부여하지 않습니다. 정확한 고용 관계는 소유 도메인에서 제공해야 할 수 있습니다. 판단 기준은 Resource Reference에 있습니다.
업무 요청과 결과 수신
Event 위임은 비동기입니다. 요청 사실을 발행하고 상관관계가 연결된 별도 결과를 받습니다. 로컬 상태를 바꾸기 전에 producer·schema·tenant·범위·공개 식별자를 검증하세요. 고정 멱등 키와 거부·재시도·timeout·늦은 결과의 처리 규칙이 필요합니다. HandoffResultState는 공통 결과 어휘이며 업무 상태는 각 App이 소유합니다.
Projection에는 지연이 있습니다. 재생·재조정 경로를 제공하고 판단에 영향을 주는 오래된 상태는 표시합니다. 복사한 필드를 또 하나의 원본으로 취급하지 않습니다.
Dashboard 구성
독립 widget은 각 App의 인가된 질의를 사용합니다. 관련 Resource를 하나의 표로 구성할 때 Core는 catalog가 증명한 관계, source alias, 독립 인가를 갖춘 제한된 그래프만 허용합니다. Raw SQL·임의 join·자동 관계 탐색은 제공하지 않습니다. 그 밖의 집계는 projection이나 적절한 호스트 계약으로 구현합니다.
플랫폼 책임일 때만 SDK에 추가
기존 SDK 기능을 먼저 사용합니다. 새 계약은 지속적인 App-neutral 호스트 책임이어야 하며 어느 App 하나가 없거나 대체되어도 의미가 있어야 합니다. 특정 App 조합의 DTO를 두 곳에서 사용한다는 이유만으로 SDK에 넣지 않습니다. 업무 규칙은 소유 App에 두고 Core가 호스트 실행의 tenant·actor context를 복원하도록 합니다.
App 테스트하기에서 소유 App 부재·비활성, 참조 거부, 중복·늦은 결과와 재조정을 검사합니다. 선행 설치 조건 검사로 데이터 전달이나 인가까지 증명할 수는 없습니다.