-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUntitled Diagram.drawio
85 lines (85 loc) · 9.8 KB
/
Untitled Diagram.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
<mxfile host="app.diagrams.net" modified="2024-05-14T15:30:24.324Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36" etag="zh7-zS7cPuY8I3iMU5B8" version="24.4.0" type="github">
<diagram name="Page-1" id="c7558073-3199-34d8-9f00-42111426c3f3">
<mxGraphModel dx="1434" dy="738" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-110" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-96" target="3Qd_OOhJAvH-KdeZEQUw-97">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-96" value="Controller" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="240" y="304" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-111" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-97" target="3Qd_OOhJAvH-KdeZEQUw-98">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-97" value="Facade" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="410" y="304" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-112" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-98" target="3Qd_OOhJAvH-KdeZEQUw-102">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-98" value="Domain Service" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="610" y="304" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-128" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-99" target="3Qd_OOhJAvH-KdeZEQUw-98">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-99" value="Domain Entity" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="830" y="434" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-100" value="Database" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="990" y="294" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-109" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-101" target="3Qd_OOhJAvH-KdeZEQUw-97">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-101" value="Event Handler" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="240" y="434" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-114" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-102" target="3Qd_OOhJAvH-KdeZEQUw-100">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-127" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-102" target="3Qd_OOhJAvH-KdeZEQUw-99">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-102" value="Repository" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="830" y="304" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-104" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.875;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-103" target="3Qd_OOhJAvH-KdeZEQUw-96">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-103" value="HTTP Request" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="30" y="294" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-107" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" edge="1" parent="1" source="3Qd_OOhJAvH-KdeZEQUw-105" target="3Qd_OOhJAvH-KdeZEQUw-101">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-105" value="Message&nbsp;<div>Queue</div>" style="shape=dataStorage;whiteSpace=wrap;html=1;fixedSize=1;flipV=1;flipH=1;" vertex="1" parent="1">
<mxGeometry x="40" y="424" width="100" height="80" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-120" value="<h1 style="margin-top: 0px;">Service Tier Responsibilities</h1><p>Breakdown of service tiers with responsibilities by tier.</p>" style="text;html=1;whiteSpace=wrap;overflow=hidden;rounded=0;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="400" height="120" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-121" value="<div style="text-align: left;"><ul><li><span style="background-color: initial;">Receive incoming requests</span></li><li>Data type and shape transformation from request to internal dtos, and from dtos to response shapes</li><li>Authentication</li><li><span style="background-color: initial;">Authorization</span></li></ul></div><div><div><br></div></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="227.5" y="130" width="145" height="180" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-122" value="<div style="text-align: left;"><ul><li>Abstraction and simplification of underlying services, coordinate work across multiple domain services</li><li>Transaction management</li><li>Unit of Work</li><li>Transform domain entities to dtos</li></ul></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="397.5" y="110" width="145" height="200" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-123" value="<div style="text-align: left;"><ul><li><span style="background-color: initial;">Entity retrieval through repository</span></li><li><span style="background-color: initial;">Creation of new domain entity</span><br></li><li><span style="background-color: initial;">Coordination of business logic across multiple domain entities</span></li><li><span style="background-color: initial;">Handling of communication with other services&nbsp; through rest clients</span></li></ul></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="597.5" y="110" width="145" height="200" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-124" value="<div style="text-align: left;"><ul><li>Retrieve data from database and populate domain entities</li></ul></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="817.5" y="230" width="145" height="80" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-125" value="<div style="text-align: left;"><ul><li><span style="background-color: initial;">Aggregate root entity</span></li><li>Business logic for single entity</li><li><span style="background-color: initial;">Should protect against improper changes and data/state consistency</span></li></ul></div><div><div><br></div></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="817.5" y="504" width="145" height="146" as="geometry" />
</mxCell>
<mxCell id="3Qd_OOhJAvH-KdeZEQUw-126" value="<div style="text-align: left;"><ul><li>Receive messages from message brokers</li><li>Data type and shape transformation from message to dtos</li></ul></div>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="227.5" y="504" width="145" height="116" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>