백그라운드 작업을 위한 네이티브 브리지, 저장소, 동기화, 보안, 테스트, 텔레메트리 및 복구를 명세합니다. 이 참조는 채택 경계, 실패 동작 및 관찰 가능한 증거를 고정하면서 환경별 한계는 구성 가능하도록 둡니다.
패키지 상태: 참조 컨텍스트가 인간 검토를 위해 준비됨. 계약 및 테스트 시나리오는 완성되었으나, 채택 구현이 이를 통과했다는 주장은 없습니다.
결정
백그라운드 작업에 대해 명시적 네이티브 어댑터가 포함된 플랫폼 중립 도메인 계약을 채택합니다. 동작은 하나의 권위 있는 쓰기 경로, 타입화된 인터페이스, 명시적 상태, 멱등 부작용 처리로 구현합니다. 이 패키지는 참조 계약이며, 채택 팀은 자체 환경의 증거를 바탕으로 수치 한계, 공급자, 관할권, 운영 소유자를 선택해야 합니다.
범위
- 이 구현 블록에서 설명하는 백그라운드 작업 행위자, 입력, 출력, 상태, 정책 또는 스키마 버전, 외부에 보이는 결과.
- 기본 및 대체 인터페이스, 백그라운드 작업, 캐시, 통합, 지원 경로, 동일 경계를 실행할 수 있는 증거.
- 참조를 안전하게 적용하기 위해 필요한 채택별 구성, 배포, 복구 및 검증 책임.
이 블록 밖
- 모든 채택자를 위한 보편적 공급자, 프레임워크, 관할권, 수치 임계값, 보존 기간 또는 서비스 수준 목표 선택.
- 패키지된 시나리오가 하위 구현에서 실행되었거나 이 참조가 법적, 보안 또는 접근성 인증을 부여한다고 주장하는 것.
계약
- 기능이 의존하는 경우 전경, 백그라운드, 종료, 오프라인, 복원, 로그아웃, 권한 거부 상태 모델링.
- 운영 체제 콜백과 외부 링크를 신뢰할 수 없는 입력으로 처리하고 결과 도메인 작업을 재승인.
- 민감 키는 플랫폼 보호 시설을 통해서만 저장하고 알림, 로그, 백업, 클립보드에 복사되는 값을 최소화.
- 경과 시간 가정 대신 내구 버전 또는 작업 식별자를 사용해 동기화 작업을 멱등하게 만듦.
- 경계에서 입력을 한 번 검증하고 하위 로직에서 사용하는 정규화된 표현을 보존.
- 비즈니스 전환을 아웃박스 레코드와 원자적으로 또는 그 이전에 영속화; 소비자는 내구 작업 ID로 중복 제거.
- 플랫폼 스케줄링, 일시 중지, 연결성, 전원, 실행 시간 제한을 고려해 작업 설계 및 운영 체제가 종료하기 전에 진행 상황 체크포인트.
- 실행 시점에 연기된 효과 재승인, 내구 ID로 중복 작업 방지, 중요 보류, 실패 또는 사용자 취소 결과를 가시화.
구현 지침
- 저장소 및 인터페이스 변경을 추가 방식으로 먼저 배포, 관찰 가능하게 보완 후 호환성 증거가 확보되면 이전 경로 폐기.
- 프레임워크 또는 공급자 세부사항 선택 전에 백그라운드 작업 입력, 출력, 행위자, 상태, 불변 조건, 부작용, 증거 모델링.
- 적용 가능한 백그라운드 작업 계약 또는 정책 버전을 중요 상태와 함께 저장하여 마이그레이션, 재생, 지원 결정에 추적 가능성 유지.
- 통제된 배포 뒤에 경로 도입, 예상 및 관찰 결과 비교, 채택 증거가 완성될 때까지 테스트된 복구 경로 유지.
실패 처리 및 안전장치
- 중단된 네이티브 작업은 내구 체크포인트에서 재개하거나 부작용 중복 없이 안전한 가시 상태로 복귀.
- 잘못되거나 모순된 백그라운드 작업 상태는 거부 또는 격리; 구현은 권한을 확장하거나 부작용을 중복하는 값을 추측하지 않음.
- 재시도는 한계가 있고 내구 ID 사용; 소진 후 작업은 점검 가능한 종료 상태에 도달하며 책임 소유자 존재.
검증 및 운영
- 영속화 전후에 의존성 실패 주입 및 재시도가 하나의 외부 가시 결과로 수렴함을 증명.
- 계약 버전별로 백그라운드 작업 성공, 거부, 검증 실패, 의존성 실패, 재시도 소진, 복구 모니터링(민감 페이로드 차원 제외).
- 정책, 스키마, 의존성, 마이그레이션 또는 경계 변경 후 양성 및 음성 픽스처 재실행 및 결과 증거 보존.
채택 가정
- 예제의 이름과 값은 구체적 픽스처이며 보편적 기본값이 아님; 채택자는 문서화된 증거와 소유권을 통해 교체.
- 채택 시스템은 인증된 신원, 내구 작업 또는 레코드 버전, 제한된 텔레메트리, 변경을 위한 통제 경로 제공 가능.
이 패키지의 실행 가능한 예제는 픽스처 및 수용 계약입니다.
구조와 메타데이터를 확인하려면 컬렉션 검증기를 실행하고, 대상 저장소에서 시나리오를 번역 및 실행한 후 구현 증거를 기록하세요.