Page 03 / 08 · Processing Chain

Six stages, no manual intervention

Between input and target system lie six stages. Each passes its state to the next, each leaves a journal entry — and none requires manual operation. What fails does not block the rest of the batch.

01

Inspect input and reserve documents

The run inspects the input channel and takes at most five documents per pass. Each is reserved for 60 seconds via Blob lease — that is the automatic traffic controller: two parallel runs never grab the same document, and if a run crashes, the document becomes available again automatically after the lease expires.

Batch size 5 Lease 60 s, extendable reserved → skipped, not aborted
02

Classify, split, label CLASSIFIER

Only the first pages go to the classifier. For each recognized subdocument, its pages are written as a separate PDF to the output container — into a path made up of classifier name and document type — and given two metadata values: the recognized category and its confidence. On success, the source is released and deleted; the lease is actively extended in the meantime because classification can take longer than its deadline.

Storage path
<output folder> / <classifier model> / <document type> / <file>.pdf
Blob metadata
AnalysedCategory = document type · CategoryConfidence = 0.00–1.00
03

Find model RECOGNIZER

Extraction finds its model on its own: from the storage path it reads the classifier name, from the Blob metadata the document type — and thus selects exactly the recognition model configured for this combination. This handoff is the actual transfer point between the modules and the topic of page 06. What happens if no model exists for the recognized document type is covered on Missing Model.

04

Analyze and map to target fields

The document goes to the model engine — classic trained field extraction or an analyzer authorized by NexoGraph Document Processing. Fields and table cells are mapped to the configured target field names and stored as the result record; raw JSON and the original are moved to the analysis container. A content hash per document acts as a savings brake: if the same content appears again, the stored result is reused instead of being analyzed again.

Document Intelligence NexoGraph Document Processing Dedup by content hash
05

Deliver to all destinations

The result is sent simultaneously to all registered endpoint adapters — document management and any number of REST targets on equal footing. Unconfigured targets report cleanly as "skipped", expected errors report as "failed"; none of them overturns the run. Each adapter writes its own journal stage.

06

Finish — or leave it repeatable

The document and analysis JSON move to final/ — but only if no destination marked as mandatory has failed. Otherwise everything remains in place and can be repeated via POST /RetryEndpoint without re-analysis. The run, not a single adapter, decides on storage.

What does not stop the run
check_circle
A defective document gets a journal end state — the batch continues.
check_circle
A document that is already reserved is skipped, not treated as an error.
check_circle
An empty batch remains visible: it is logged as its own journal entry instead of ending without comment.
check_circle
Even a journal outage does not stop processing — it is logged, not escalated.