> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://cla-demo.postmansolutions.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://cla-demo.postmansolutions.com/_mcp/server.

# Platform Overview Diagram

The nodes represent system components where events or data arrive and places where events and data originate.  The arrows show the direction of the flow of data and events.  The intention of this diagram is to give a visible representation to the entire system at a high level.\


### The Platform

```mermaid
    flowchart TD
    
        %% Nodes
        fileIntakeService(File Intake Service)
        fileClassifier(File Classifier)
        fileSplitter(File Splitter)
        documentClassifier(Document Classifier)
        documentExtractorA(Document Extractor A)
        documentExtractorB(Document Extractor B)
        documentExtractorC(Document Extractor C)
        postprocessorJ(Postprocessor J)
        postprocessorK(Postprocessor K)
        extractedDataStorage(Extracted Data Storage)
        rawExtractedDataStorage(Raw Extracted Data Storage)
        externalFileStorage(External File Storage)
        uploadFileStorage(Upload File Storage)
        internalFileStorage(Internal File Storage)
    
        %% Arrows
        externalFileStorage --> fileIntakeService
        uploadFileStorage --> fileIntakeService
        fileIntakeService --> internalFileStorage

        internalFileStorage --> fileClassifier
        internalFileStorage --> documentClassifier
        
        fileClassifier --> fileSplitter
        fileClassifier --> documentClassifier
        fileSplitter --> documentClassifier

        documentClassifier --> documentExtractorA
        documentClassifier --> documentExtractorB
        documentClassifier --> documentExtractorC

        documentExtractorA --> rawExtractedDataStorage
        documentExtractorB --> rawExtractedDataStorage

        rawExtractedDataStorage --> postprocessorJ
        rawExtractedDataStorage --> postprocessorK

        documentExtractorC --> extractedDataStorage
        postprocessorJ --> extractedDataStorage
        postprocessorK --> extractedDataStorage

        statusService(Status Service)
```

I did not connect the status service to all the places it might listen.  It cluttered the diagram too much.  It will listen to files coming into the system (the event from the intake service) and for new document events from the document classifier and other events as needed to mark completion of significant processing milestones.  We should see at least a "new file provided", "new file ready for processing" and messages for each extractor completion and each postprocessor completion.  There may be additional places to listen for other details.  The main lifecycle events for each item (document) are the minimum needed.

Another reason for the status service is that it will know which documents and files are being processed, which are completed and which are rejected.  This information will be needed by the file intake service and the user interface applications.