-
Notifications
You must be signed in to change notification settings - Fork 0
/
high-level-architecture.drawio
141 lines (141 loc) · 16.6 KB
/
high-level-architecture.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<mxfile host="app.diagrams.net" modified="2023-04-27T14:20:59.932Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" etag="ao0I_vvB5_5lId8h3wic" version="21.2.1" type="device">
<diagram name="Page-1" id="QlAS6P0ZarEfJbWY2PkY">
<mxGraphModel dx="1434" dy="747" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="psEK_-1R5tJC7iqlsom0-31" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="40" y="274.5" width="80" height="290" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-30" value="End-user devices" style="fillColor=#EFF0F3;strokeColor=none;dashed=0;verticalAlign=top;fontStyle=0;fontColor=#232F3D;whiteSpace=wrap;html=1;" vertex="1" parent="psEK_-1R5tJC7iqlsom0-31">
<mxGeometry width="80" height="290" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-21" value="" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#232F3D;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.mobile_client;points=[[1,0.25,0,0,0],[1,0.5,0,0,0],[1,0.75,0,0,0]];" vertex="1" parent="psEK_-1R5tJC7iqlsom0-31">
<mxGeometry x="19.5" y="42.5" width="41" height="78" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-22" value="" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#232F3D;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.mobile_client;points=[[1,0.25,0,0,0],[1,0.5,0,0,0],[1,0.75,0,0,0]];" vertex="1" parent="psEK_-1R5tJC7iqlsom0-31">
<mxGeometry x="19.5" y="121" width="41" height="78" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-24" value="" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#232F3D;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.mobile_client;points=[[1,0.25,0,0,0],[1,0.5,0,0,0],[1,0.75,0,0,0]];" vertex="1" parent="psEK_-1R5tJC7iqlsom0-31">
<mxGeometry x="19.5" y="200" width="41" height="78" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-20" value="API Gateway" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=1;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_aws_cloud_alt;strokeColor=#8552e2;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#232F3E;dashed=0;" parent="1" vertex="1">
<mxGeometry x="330" y="290" width="130" height="230" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-3" value="" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.api_gateway;" parent="odi_V6lT9OdnU7UhY-RL-20" vertex="1">
<mxGeometry width="25" height="25" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-26" value="Websocket endpoint" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#4D27AA;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.endpoint;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" parent="odi_V6lT9OdnU7UhY-RL-20" vertex="1">
<mxGeometry x="43" y="68.5" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-27" value="HTTP endpoint" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#4D27AA;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.endpoint;" parent="odi_V6lT9OdnU7UhY-RL-20" vertex="1">
<mxGeometry x="45" y="158.5" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="odi_V6lT9OdnU7UhY-RL-4" target="odi_V6lT9OdnU7UhY-RL-26" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="310" y="400" />
<mxPoint x="310" y="379" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="odi_V6lT9OdnU7UhY-RL-4" target="odi_V6lT9OdnU7UhY-RL-27" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="310" y="439" />
<mxPoint x="310" y="469" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-4" value="Cloudfront<br>distribution" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#945DF2;gradientDirection=north;fillColor=#5A30B5;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.cloudfront;" parent="1" vertex="1">
<mxGeometry x="200" y="380.5" width="78" height="78" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#4f4dff;" edge="1" parent="1" source="psEK_-1R5tJC7iqlsom0-30" target="psEK_-1R5tJC7iqlsom0-14">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="160" y="347" />
<mxPoint x="160" y="240" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;fillColor=#d5e8d4;strokeColor=#82b366;exitX=1;exitY=0.75;exitDx=0;exitDy=0;" edge="1" parent="1" source="psEK_-1R5tJC7iqlsom0-30" target="odi_V6lT9OdnU7UhY-RL-8">
<mxGeometry relative="1" as="geometry">
<mxPoint x="-20" y="520" as="sourcePoint" />
<Array as="points">
<mxPoint x="160" y="492" />
<mxPoint x="160" y="580" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-30" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="odi_V6lT9OdnU7UhY-RL-26" target="odi_V6lT9OdnU7UhY-RL-24" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-31" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="odi_V6lT9OdnU7UhY-RL-27" target="odi_V6lT9OdnU7UhY-RL-25" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;elbow=vertical;curved=1;" edge="1" parent="1" source="odi_V6lT9OdnU7UhY-RL-24" target="odi_V6lT9OdnU7UhY-RL-26">
<mxGeometry relative="1" as="geometry">
<mxPoint x="370" y="280" as="targetPoint" />
<Array as="points">
<mxPoint x="580" y="340" />
<mxPoint x="393" y="340" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-24" value="Websocket handlers" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#D45B07;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.lambda_function;" parent="1" vertex="1">
<mxGeometry x="560" y="358.5" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="odi_V6lT9OdnU7UhY-RL-24" target="odi_V6lT9OdnU7UhY-RL-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-25" value="<span style="color: rgb(35, 47, 62); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; float: none; display: inline !important;">REST handlers</span>" style="sketch=0;outlineConnect=0;fontColor=#232F3E;gradientColor=none;fillColor=#D45B07;strokeColor=none;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;pointerEvents=1;shape=mxgraph.aws4.lambda_function;" parent="1" vertex="1">
<mxGeometry x="560" y="448.5" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-8" value="S3 Bucket<br>Temporary file store" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#60A337;gradientDirection=north;fillColor=#277116;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.s3;labelPosition=center;" parent="1" vertex="1">
<mxGeometry x="690" y="560" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;labelPosition=right;verticalLabelPosition=middle;align=left;verticalAlign=middle;" parent="1" source="odi_V6lT9OdnU7UhY-RL-25" target="odi_V6lT9OdnU7UhY-RL-8" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="579.5" y="358.5" as="sourcePoint" />
<mxPoint x="579.5" y="250" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-1" value="API call, no data" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="odi_V6lT9OdnU7UhY-RL-33">
<mxGeometry x="0.2811" y="-4" relative="1" as="geometry">
<mxPoint x="4" y="42" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-5" value="DynamoDB<br>Session store" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#4D72F3;gradientDirection=north;fillColor=#3334B9;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.dynamodb;" parent="1" vertex="1">
<mxGeometry x="720" y="358.5" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-34" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="500" y="290" width="160" height="230" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-21" value="Lambda" style="points=[[0,0],[0.25,0],[0.5,0],[0.75,0],[1,0],[1,0.25],[1,0.5],[1,0.75],[1,1],[0.75,1],[0.5,1],[0.25,1],[0,1],[0,0.75],[0,0.5],[0,0.25]];outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;container=0;pointerEvents=0;collapsible=0;recursiveResize=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_aws_cloud_alt;strokeColor=#f28806;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;fontColor=#232F3E;dashed=0;" parent="odi_V6lT9OdnU7UhY-RL-34" vertex="1">
<mxGeometry width="160" height="230.00000000000003" as="geometry" />
</mxCell>
<mxCell id="odi_V6lT9OdnU7UhY-RL-7" value="" style="sketch=0;points=[[0,0,0],[0.25,0,0],[0.5,0,0],[0.75,0,0],[1,0,0],[0,1,0],[0.25,1,0],[0.5,1,0],[0.75,1,0],[1,1,0],[0,0.25,0],[0,0.5,0],[0,0.75,0],[1,0.25,0],[1,0.5,0],[1,0.75,0]];outlineConnect=0;fontColor=#232F3E;gradientColor=#F78E04;gradientDirection=north;fillColor=#D05C17;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.lambda;" parent="odi_V6lT9OdnU7UhY-RL-34" vertex="1">
<mxGeometry width="25" height="25" as="geometry" />
</mxCell>
<mxCell id="glznaEs4rfP4Ca6hVpfA-1" value="High-level back-end component architecture of pdf-viewer-sync.<br><br>Diagram represents architecture as it was in commit<br style="border-color: var(--border-color);">fe9235c80e7e2814d1407e50f5ceb3ed6adea3b9" style="rounded=0;whiteSpace=wrap;html=1;align=left;spacing=3;spacingLeft=10;spacingBottom=10;spacingRight=10;spacingTop=10;" parent="1" vertex="1">
<mxGeometry x="30" y="110" width="380" height="80" as="geometry" />
</mxCell>
<mxCell id="glznaEs4rfP4Ca6hVpfA-4" value="Notes:<br>- Supporting resources (e.g. roles, policies, log groups) are omitted for clarity.<br>- Arrows indicate direction of the <i>request</i>; <i>data</i> is likely to flow bi-directionally." style="rounded=0;whiteSpace=wrap;html=1;align=left;spacing=3;spacingLeft=10;spacingBottom=10;spacingRight=10;spacingTop=10;" parent="1" vertex="1">
<mxGeometry x="30" y="620" width="502" height="60" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-16" value="" style="group" vertex="1" connectable="0" parent="1">
<mxGeometry x="220" y="215" width="40" height="50" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-14" value="Github Pages" style="image;aspect=fixed;perimeter=ellipsePerimeter;html=1;align=center;shadow=0;dashed=0;spacingTop=3;image=img/lib/active_directory/web_server.svg;" vertex="1" parent="psEK_-1R5tJC7iqlsom0-16">
<mxGeometry width="40" height="50" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-15" value="" style="dashed=0;outlineConnect=0;html=1;align=center;labelPosition=center;verticalLabelPosition=bottom;verticalAlign=top;shape=mxgraph.weblogos.github" vertex="1" parent="psEK_-1R5tJC7iqlsom0-16">
<mxGeometry x="15" y="25" width="25" height="25" as="geometry" />
</mxCell>
<mxCell id="psEK_-1R5tJC7iqlsom0-32" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="psEK_-1R5tJC7iqlsom0-30" target="odi_V6lT9OdnU7UhY-RL-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>