|
| 1 | +<mxfile host="app.diagrams.net" modified="2024-01-17T00:00:00.000Z" agent="DocAI" version="22.0.0"> |
| 2 | + <diagram name="DocAI Architecture" id="docai-arch"> |
| 3 | + <mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0"> |
| 4 | + <root> |
| 5 | + <mxCell id="0" /> |
| 6 | + <mxCell id="1" parent="0" /> |
| 7 | + |
| 8 | + <!-- Title --> |
| 9 | + <mxCell id="title" value="DocAI Platform - AI-Powered Document Intelligence" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=24;fontStyle=1" vertex="1" parent="1"> |
| 10 | + <mxGeometry x="400" y="20" width="500" height="40" as="geometry" /> |
| 11 | + </mxCell> |
| 12 | + |
| 13 | + <!-- Customer --> |
| 14 | + <mxCell id="customer" value="Customer
Application" style="shape=actor;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> |
| 15 | + <mxGeometry x="40" y="300" width="80" height="100" as="geometry" /> |
| 16 | + </mxCell> |
| 17 | + |
| 18 | + <!-- AWS Cloud Container --> |
| 19 | + <mxCell id="aws-cloud" value="AWS Cloud" style="swimlane;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;rounded=1;startSize=30;" vertex="1" parent="1"> |
| 20 | + <mxGeometry x="180" y="80" width="1200" height="700" as="geometry" /> |
| 21 | + </mxCell> |
| 22 | + |
| 23 | + <!-- Edge Layer --> |
| 24 | + <mxCell id="edge-layer" value="Edge Layer" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;rounded=1;" vertex="1" parent="aws-cloud"> |
| 25 | + <mxGeometry x="20" y="50" width="200" height="280" as="geometry" /> |
| 26 | + </mxCell> |
| 27 | + |
| 28 | + <mxCell id="cloudfront" value="CloudFront
CDN" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.cloudfront;fillColor=#F58536;gradientColor=none;" vertex="1" parent="edge-layer"> |
| 29 | + <mxGeometry x="80" y="40" width="76.5" height="93" as="geometry" /> |
| 30 | + </mxCell> |
| 31 | + |
| 32 | + <mxCell id="apigateway" value="API Gateway
REST API" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.api_gateway;fillColor=#D9A741;gradientColor=none;" vertex="1" parent="edge-layer"> |
| 33 | + <mxGeometry x="80" y="160" width="76.5" height="93" as="geometry" /> |
| 34 | + </mxCell> |
| 35 | + |
| 36 | + <!-- Security --> |
| 37 | + <mxCell id="security" value="Security" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;rounded=1;" vertex="1" parent="aws-cloud"> |
| 38 | + <mxGeometry x="20" y="350" width="200" height="150" as="geometry" /> |
| 39 | + </mxCell> |
| 40 | + |
| 41 | + <mxCell id="cognito" value="Cognito
Auth & JWT" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.cognito;fillColor=#AD688B;gradientColor=none;" vertex="1" parent="security"> |
| 42 | + <mxGeometry x="80" y="30" width="76.5" height="93" as="geometry" /> |
| 43 | + </mxCell> |
| 44 | + |
| 45 | + <!-- Compute Layer --> |
| 46 | + <mxCell id="compute" value="Compute Layer" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;rounded=1;" vertex="1" parent="aws-cloud"> |
| 47 | + <mxGeometry x="250" y="50" width="280" height="450" as="geometry" /> |
| 48 | + </mxCell> |
| 49 | + |
| 50 | + <mxCell id="lambda-upload" value="Upload
Handler" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.lambda_function;fillColor=#F58534;gradientColor=none;" vertex="1" parent="compute"> |
| 51 | + <mxGeometry x="100" y="40" width="69" height="72" as="geometry" /> |
| 52 | + </mxCell> |
| 53 | + |
| 54 | + <mxCell id="lambda-process" value="Document
Processor" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.lambda_function;fillColor=#F58534;gradientColor=none;" vertex="1" parent="compute"> |
| 55 | + <mxGeometry x="100" y="160" width="69" height="72" as="geometry" /> |
| 56 | + </mxCell> |
| 57 | + |
| 58 | + <mxCell id="lambda-get" value="Get Document
Handler" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.lambda_function;fillColor=#F58534;gradientColor=none;" vertex="1" parent="compute"> |
| 59 | + <mxGeometry x="100" y="280" width="69" height="72" as="geometry" /> |
| 60 | + </mxCell> |
| 61 | + |
| 62 | + <mxCell id="lambda-webhook" value="Webhook
Delivery" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.lambda_function;fillColor=#F58534;gradientColor=none;" vertex="1" parent="compute"> |
| 63 | + <mxGeometry x="100" y="370" width="69" height="72" as="geometry" /> |
| 64 | + </mxCell> |
| 65 | + |
| 66 | + <!-- AI/ML --> |
| 67 | + <mxCell id="aiml" value="AI/ML" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;rounded=1;" vertex="1" parent="aws-cloud"> |
| 68 | + <mxGeometry x="560" y="120" width="200" height="150" as="geometry" /> |
| 69 | + </mxCell> |
| 70 | + |
| 71 | + <mxCell id="textract" value="Textract
OCR & Extraction" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.textract;fillColor=#01A88D;" vertex="1" parent="aiml"> |
| 72 | + <mxGeometry x="80" y="30" width="78" height="78" as="geometry" /> |
| 73 | + </mxCell> |
| 74 | + |
| 75 | + <!-- Data Layer --> |
| 76 | + <mxCell id="data" value="Data Layer" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;rounded=1;" vertex="1" parent="aws-cloud"> |
| 77 | + <mxGeometry x="560" y="290" width="320" height="210" as="geometry" /> |
| 78 | + </mxCell> |
| 79 | + |
| 80 | + <mxCell id="s3" value="Documents
Bucket" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.s3;fillColor=#E05243;gradientColor=none;" vertex="1" parent="data"> |
| 81 | + <mxGeometry x="50" y="50" width="76.5" height="93" as="geometry" /> |
| 82 | + </mxCell> |
| 83 | + |
| 84 | + <mxCell id="dynamodb-docs" value="Documents
Table" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.dynamo_db;fillColor=#2E73B8;gradientColor=none;" vertex="1" parent="data"> |
| 85 | + <mxGeometry x="160" y="30" width="72" height="81" as="geometry" /> |
| 86 | + </mxCell> |
| 87 | + |
| 88 | + <mxCell id="dynamodb-users" value="Users &
Usage" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.dynamo_db;fillColor=#2E73B8;gradientColor=none;" vertex="1" parent="data"> |
| 89 | + <mxGeometry x="160" y="120" width="72" height="81" as="geometry" /> |
| 90 | + </mxCell> |
| 91 | + |
| 92 | + <!-- Integration --> |
| 93 | + <mxCell id="integration" value="Integration" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;rounded=1;" vertex="1" parent="aws-cloud"> |
| 94 | + <mxGeometry x="560" y="520" width="200" height="150" as="geometry" /> |
| 95 | + </mxCell> |
| 96 | + |
| 97 | + <mxCell id="eventbridge" value="EventBridge
Events" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.eventbridge;fillColor=#E7157B;" vertex="1" parent="integration"> |
| 98 | + <mxGeometry x="80" y="30" width="78" height="78" as="geometry" /> |
| 99 | + </mxCell> |
| 100 | + |
| 101 | + <!-- Monitoring --> |
| 102 | + <mxCell id="monitoring" value="Observability" style="swimlane;horizontal=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;rounded=1;" vertex="1" parent="aws-cloud"> |
| 103 | + <mxGeometry x="920" y="200" width="200" height="200" as="geometry" /> |
| 104 | + </mxCell> |
| 105 | + |
| 106 | + <mxCell id="cloudwatch" value="CloudWatch
Metrics & Logs" style="outlineConnect=0;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;shape=mxgraph.aws3.cloudwatch;fillColor=#759C3E;gradientColor=none;" vertex="1" parent="monitoring"> |
| 107 | + <mxGeometry x="80" y="50" width="76.5" height="93" as="geometry" /> |
| 108 | + </mxCell> |
| 109 | + |
| 110 | + <!-- Connections --> |
| 111 | + <mxCell id="edge1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;strokeColor=#0066CC;" edge="1" parent="1" source="customer" target="cloudfront"> |
| 112 | + <mxGeometry relative="1" as="geometry" /> |
| 113 | + </mxCell> |
| 114 | + <mxCell id="edge1-label" value="HTTPS" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="edge1"> |
| 115 | + <mxGeometry x="-0.2" relative="1" as="geometry"> |
| 116 | + <mxPoint as="offset" /> |
| 117 | + </mxGeometry> |
| 118 | + </mxCell> |
| 119 | + |
| 120 | + </root> |
| 121 | + </mxGraphModel> |
| 122 | + </diagram> |
| 123 | +</mxfile> |
0 commit comments