콘텐츠로 이동
getnextpdf.com

Enterprise 에디션

출력 파이프라인

NextPDF Enterprise는 NextPDF Pro 출력 파이프라인 매니페스트의 대규모 일괄 실행을 구성 가능한 동시성 제한 및 완료된 출력에 대한 선택적 적합성 핸드오프와 함께 조율합니다. Pro 출력 파이프라인 위에 놓인 일괄 처리 계층입니다.

이 기능은 NextPDF Enterprise(nextpdf/enterprise)에 제공되며 Enterprise 등급 라이선스 봉투로 활성화됩니다. 해당 권한이 없는 배포에서는 이 기능의 클래스를 로드하지 않습니다. 에디션을 비교하고 라이선스 받기.

Enterprise 배치 표면은 Pro 출력 파이프라인(pro.output.pipeline) 위에 구축되며, 이는 게이트가 아니라 전제 조건입니다. 별도의 기능별 기능 코드는 없습니다. 배치 오케스트레이터와 적합성 핸드오프는 라이선스가 부여된 nextpdf/enterprise 패키지가 설치된 곳이라면 어디서나 사용할 수 있습니다.

Terminal window
composer require nextpdf/enterprise:^3

BatchPipelineOrchestrator는 다수의 PipelineManifest 인스턴스를 하나의 배치로 실행합니다. 각 매니페스트는 Pro PipelineExecutor를 통해 실행되며, 오케스트레이터는 배치 조율, 한정된 리소스 가드(배치당 매니페스트 수가 상한 처리됨), 배치별 타임아웃 처리, 그리고 선택적 적합성 핸드오프를 더합니다.

BatchPipelineConfig는 세 가지를 제어합니다. 최대 동시 워커 콜백, 밀리초 단위의 선택적 글로벌 배치 타임아웃, 그리고 파이프라인 완료 후 모든 출력에 적합성 검사가 실행되는지 여부입니다. 적합성 검사가 활성화되면 ComplianceHandoff가 각 파생 PDF를 Enterprise 적합성 게이트웨이를 통해 재검증하는 파이프라인 단계로 통합되므로, 파이프라인에 의해 수정된 문서는 수정 이전 상태에서 신뢰되는 대신 재검사됩니다.

프로덕션 배포에서는 병렬 워커 디스패치와 백프레셔가 별도의 실행 사이드카에 의해 처리됩니다. 여기에 설명된 PHP 오케스트레이터는 배치 조율과 적합성 핸드오프 로직을 제공하며, 요청 핸들러가 직접이 아니라 작업 워커에 의해 호출됩니다.

대용량 배치 생성은 두 가지 관심사로 나뉩니다. 어떤 매니페스트가 어떤 보장 아래 실행되는지 조율하는 것과 원시 병렬 처리량을 구동하는 것입니다. NextPDF는 조율 및 적합성 시맨틱을 이 결정론적 PHP 오케스트레이터에 두고, 병렬 워커 디스패치와 백프레셔는 별도의 실행 사이드카에 위임합니다. 그 경계 덕분에 처리량 계층은 동시성을 독립적으로 확장할 수 있고, 오케스트레이터는 단순하고 한정되며 감사 가능하게 유지됩니다. 배치당 매니페스트에 대한 하드 상한은 피크 메모리를 예측 가능하게 유지하므로, 하나의 대규모 제출이 워커 풀을 저하시킬 수 없습니다. 적합성 핸드오프는 각 파생 출력을 수정 이전 상태에서 신뢰하는 대신 재검증하며, 실패 시 닫힙니다. 완료된 매니페스트는 게이트웨이가 적합성을 확인할 때만 통과하며, 결코 기본값으로 통과하지 않습니다.

설계 배경: 대용량 문서 생성.

클래스역할
BatchPipelineOrchestrator한정된 동시성으로 다수의 매니페스트를 배치로 실행합니다.
BatchPipelineConfig최대 동시성, 배치 타임아웃, 완료 시 적합성 검사 토글.
BatchPipelineResult집계: 매니페스트별 결과, 완료 및 실패 수, 타이밍.
ComplianceHandoff선택적 파이프라인 종료 시 적합성 재검증 단계.
use NextPDF\Enterprise\OutputPipeline\BatchPipelineOrchestrator;
$result = (new BatchPipelineOrchestrator($executor))->executeBatch($manifests);
use NextPDF\Enterprise\OutputPipeline\BatchPipelineOrchestrator;
use NextPDF\Enterprise\OutputPipeline\BatchPipelineConfig;
$config = new BatchPipelineConfig(
maxConcurrency: 4,
timeoutMs: 600_000,
complianceCheckOnComplete: true,
);
$result = (new BatchPipelineOrchestrator($executor, $config))
->executeBatch($manifests, $variablesMap);
$logger->info('pipeline.batch', [
'completed' => $result->completedCount,
'failed' => $result->failedCount,
]);
  • 배치는 매니페스트 수에 상한을 강제합니다. 이를 초과하면 조용히 저하되는 대신 리소스 가드 오류가 발생합니다.
  • 글로벌 타임아웃이 0이면 배치 타임아웃이 없음을 의미합니다. 멈춘 매니페스트가 배치를 무기한 차단할 수 없도록 프로덕션에서는 유한한 값을 설정하십시오.
  • 적합성 핸드오프에는 상류 단계 출력에 인식 가능한 PDF가 필요합니다. 발견되지 않으면 해당 단계는 조용히 통과하는 대신 그 매니페스트에 대해 실패를 보고합니다.
  • 이 모듈은 Pro 출력 파이프라인에 의존합니다. 새로운 단계 모델이 아니라 배치 조율을 더합니다.

처리량은 구성된 동시성과 매니페스트별 비용에 따라 증가합니다. 동시성은 콜백이 워커 풀을 포화시키지 않도록 워커 풀에 비해 보수적으로 설정해야 합니다. 배치당 매니페스트 상한은 피크 메모리를 한정합니다.

배치 오케스트레이터는 호출자가 제공하는 매니페스트와 변수를 처리합니다. 파이프라인 입력을 다른 신뢰할 수 없는 PDF 워크로드와 마찬가지로 취급하십시오. 적합성 핸드오프는 재검증 보조 수단이며, 권한 부여 통제가 아닙니다.

배치 출력에는 개인 데이터가 포함될 수 있습니다. 처리는 인프로세스이며 로컬에서 수행됩니다. 이 오케스트레이터는 아웃바운드 네트워크 호출을 하지 않습니다. 배치 출력에는 자체 보존 통제를 적용하십시오.

안전한 텔레메트리 및 로그 스크러빙

섹션 제목: “안전한 텔레메트리 및 로그 스크러빙”

배치 결과는 문서 콘텐츠가 아니라 수치와 타이밍을 보고합니다. 매니페스트 식별자가 테넌트 또는 사례 데이터를 인코딩한다면 로그에서 이를 스크러빙하십시오.

이 모듈에 대해서는 어떤 표준 적합성도 주장하지 않습니다. 오케스트레이션 계층입니다. 선택적 적합성 핸드오프는 자체 참조를 담는 Enterprise 적합성 게이트웨이에 위임합니다.

이 모듈은 어떤 암호화 작업도 수행하지 않습니다.

주요 입력은 호출자가 제공한 매니페스트와 변수입니다. 완화책은 배치당 매니페스트의 하드 상한, 한정된 동시성, 파생 출력의 선택적 재검증, 그리고 오케스트레이터 자체의 네트워크 I/O 없음입니다.

  • executeBatch()는 각 매니페스트를 Pro 파이프라인 실행기를 통해 실행하고, 완료 및 실패 수와 타이밍을 갖춘 매니페스트별 결과를 반환합니다.
  • 하드 상한이 배치당 매니페스트 수를 한정합니다. 이를 초과하면 조용히 저하되는 대신 리소스 가드 오류가 발생합니다.
  • 글로벌 타임아웃이 0이면 배치 타임아웃이 없음을 의미합니다. 유한한 값은 멈춘 매니페스트를 한정합니다.
  • 활성화되면, 적합성 핸드오프는 각 파생 PDF를 재검증하고, 상류에서 인식 가능한 PDF가 발견되지 않으면 조용히 통과하는 대신 단계 실패를 보고합니다.

이 페이지는 외부에서 관찰 가능한 동작과 지원되는 공개 API 표면만 문서화합니다. 내부 네임스페이스 경로, 헬퍼 클래스, 메커니즘 표, 런북 파일명, 티켓 접두사는 범위 밖입니다.

NextPDF Core에는 출력 파이프라인 모델이 없습니다. Core 전용 배포는 Core API에 대해 직접 자체 단계를 구성합니다. 매니페스트도, 배치 조율도, 적합성 핸드오프도 없습니다.

Pro 전용 배포에서 지원되는 표면은 단일 매니페스트 Pro 출력 파이프라인(pro.output.pipeline)입니다. Pro PipelineExecutor는 한 번에 하나의 매니페스트를 실행합니다. Pro는 배치 오케스트레이터, 한정된 동시성 배치 가드, 배치별 타임아웃, 또는 Enterprise 적합성 핸드오프를 제공하지 않습니다. Pro 전용 배포에서 배치 조율이나 적합성 핸드오프를 요청하는 구성에는 이를 충족할 Enterprise 구성 요소가 없습니다. Pro 파이프라인 표면은 Pro 개요를 참조하십시오.

배치 조율, 리소스 가드 한계, 적합성 핸드오프 연결은 동작 수준에서만 설명됩니다. 내부 사이드카 디스패치 프로토콜, 내부 백프레셔 시맨틱, 내부 적합성 게이트웨이 연결은 공개 표면의 범위 밖이며 여기에서 재현하지 않습니다.

프로덕션에서는 병렬 워커 디스패치와 백프레셔가 별도의 실행 사이드카에 의해 처리됩니다. 여기에 설명된 PHP 오케스트레이터는 배치 조율과 적합성 핸드오프 로직을 제공하며, 요청 핸들러가 직접이 아니라 작업 워커에 의해 호출됩니다. 워커 풀 크기 조정, 사이드카 프로비저닝, 그리고 PHP 워커 풀에 비례한 동시성 제한은 운영자의 책임입니다. 적합성 핸드오프는 재검증 보조 수단이며, 권한 부여 통제가 아닙니다.

선택적 적합성 핸드오프는 파생 문서에 대해 검증 패스를 다시 실행합니다. 발견 사항을 보고할 뿐, 문서를 인증하거나, 규제 충족성을 보장하거나, 법률 자문을 구성하지 않습니다. 출력이 귀하의 의무를 충족하는지 판단하는 것은 귀하의 책임입니다.