|
| 1 | +<mxfile host="Electron" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.2.8 Chrome/140.0.7339.240 Electron/38.4.0 Safari/537.36" version="28.2.8"> |
| 2 | + <diagram name="Layered Architecture" id="0"> |
| 3 | + <mxGraphModel dx="1018" dy="693" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0"> |
| 4 | + <root> |
| 5 | + <mxCell id="0" /> |
| 6 | + <mxCell id="1" parent="0" /> |
| 7 | + <mxCell id="104" value="<b><font style="font-size: 24px;" data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" face="Architects Daughter">Integration</font></b><br><span style="font-weight: normal;">Database, APIs</span>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#656565;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#00994D;arcSize=50;" parent="1" vertex="1"> |
| 8 | + <mxGeometry x="200" y="580" width="700" height="80" as="geometry" /> |
| 9 | + </mxCell> |
| 10 | + <mxCell id="100" value="<b><font style="font-size: 24px;" data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" face="Architects Daughter">Presentation Layer</font></b><br><span style="font-weight: normal;">Controllers, DTOs</span>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CCE5FF;strokeColor=#656565;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#5089C8;arcSize=50;" parent="1" vertex="1"> |
| 11 | + <mxGeometry x="200" y="100" width="700" height="80" as="geometry" /> |
| 12 | + </mxCell> |
| 13 | + <mxCell id="101" value="<b><font style="font-size: 24px;" data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" face="Architects Daughter">Service Layer</font></b><br><span style="font-weight: normal;">Use cases, orchestration</span>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFCC;strokeColor=#656565;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#FFF2CC;arcSize=50;" parent="1" vertex="1"> |
| 14 | + <mxGeometry x="200" y="220" width="700" height="80" as="geometry" /> |
| 15 | + </mxCell> |
| 16 | + <mxCell id="102" value="<b><font style="font-size: 24px;" data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" face="Architects Daughter">Shared</font></b><br><span style="font-weight: normal;">Contracts, DTOs, constants</span>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFCCCC;strokeColor=#656565;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#990000;arcSize=50;" parent="1" vertex="1"> |
| 17 | + <mxGeometry x="200" y="340" width="700" height="80" as="geometry" /> |
| 18 | + </mxCell> |
| 19 | + <mxCell id="103" value="<b><font style="font-size: 24px;" data-font-src="https://fonts.googleapis.com/css?family=Architects+Daughter" face="Architects Daughter">Domain Layer</font></b><br><span style="font-weight: normal;">Entities, business rules</span>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#A25DE9;strokeColor=#656565;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#E5CCFF;arcSize=50;" parent="1" vertex="1"> |
| 20 | + <mxGeometry x="200" y="460" width="700" height="80" as="geometry" /> |
| 21 | + </mxCell> |
| 22 | + <mxCell id="999" value="" style="shape=trapezoid;direction=west;whiteSpace=wrap;html=1;fillColor=#202020;fontColor=default;strokeColor=#656565;gradientColor=#F4F4F4;shadow=1;sketch=1;jiggle=1;curveFitting=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;gradientDirection=west;strokeWidth=3.937;" parent="1" vertex="1"> |
| 23 | + <mxGeometry x="90" y="90" width="190" height="580" as="geometry" /> |
| 24 | + </mxCell> |
| 25 | + <mxCell id="2000" value="<br><div><br></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F5F5DC;strokeColor=#000000;fontSize=12;align=left;verticalAlign=top;spacing=10;" parent="1" vertex="1"> |
| 26 | + <mxGeometry x="950" y="100" width="350" height="250" as="geometry" /> |
| 27 | + </mxCell> |
| 28 | + <mxCell id="VgQ545U2ubMnFtVF1NAE-2010" value="<span><font style="">Cross Cutting Concerns</font></span>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Architects Daughter;fontSource=https%3A%2F%2Ffonts.googleapis.com%2Fcss%3Ffamily%3DArchitects%2BDaughter;fontSize=24;fontStyle=1;fontColor=#FFFFFF;sketch=1;curveFitting=1;jiggle=1;rotation=0;spacing=1;textOpacity=80;shadow=1;" parent="1" vertex="1"> |
| 29 | + <mxGeometry x="105" y="70" width="170" height="120" as="geometry" /> |
| 30 | + </mxCell> |
| 31 | + <mxCell id="VgQ545U2ubMnFtVF1NAE-2011" value="Utils" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontFamily=Tahoma;fontSize=20;rotation=0;fillColor=#cdeb8b;sketch=1;curveFitting=1;jiggle=1;strokeColor=#36393d;fontStyle=0;shadow=1;fontColor=#FFFFFF;" parent="1" vertex="1"> |
| 32 | + <mxGeometry x="130" y="270" width="110" height="30" as="geometry" /> |
| 33 | + </mxCell> |
| 34 | + <mxCell id="VgQ545U2ubMnFtVF1NAE-2012" value="Logging" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontFamily=Tahoma;fontSize=20;rotation=0;fillColor=#cdeb8b;sketch=1;curveFitting=1;jiggle=1;strokeColor=#36393d;fontStyle=0;shadow=1;fontColor=#FFFFFF;" parent="1" vertex="1"> |
| 35 | + <mxGeometry x="130" y="180" width="110" height="30" as="geometry" /> |
| 36 | + </mxCell> |
| 37 | + <mxCell id="VgQ545U2ubMnFtVF1NAE-2013" value="Config" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontFamily=Tahoma;fontSize=20;rotation=0;fillColor=#cdeb8b;sketch=1;curveFitting=1;jiggle=1;strokeColor=#36393d;fontStyle=0;shadow=1;fontColor=#FFFFFF;" parent="1" vertex="1"> |
| 38 | + <mxGeometry x="130" y="420" width="110" height="30" as="geometry" /> |
| 39 | + </mxCell> |
| 40 | + <mxCell id="VgQ545U2ubMnFtVF1NAE-2014" value="Validation" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontFamily=Tahoma;fontSize=20;rotation=0;fillColor=#cdeb8b;sketch=1;curveFitting=1;jiggle=1;strokeColor=#36393d;fontStyle=0;shadow=1;fontColor=#FFFFFF;" parent="1" vertex="1"> |
| 41 | + <mxGeometry x="130" y="370" width="110" height="30" as="geometry" /> |
| 42 | + </mxCell> |
| 43 | + <mxCell id="VgQ545U2ubMnFtVF1NAE-2015" value="Exceptions" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontFamily=Tahoma;fontSize=20;rotation=0;fillColor=#cdeb8b;sketch=1;curveFitting=1;jiggle=1;strokeColor=#36393d;fontStyle=0;shadow=1;fontColor=#FFFFFF;" parent="1" vertex="1"> |
| 44 | + <mxGeometry x="130" y="230" width="110" height="30" as="geometry" /> |
| 45 | + </mxCell> |
| 46 | + <mxCell id="VgQ545U2ubMnFtVF1NAE-2016" value="Crypto" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=1;fontFamily=Tahoma;fontSize=20;rotation=0;fillColor=#cdeb8b;sketch=1;curveFitting=1;jiggle=1;strokeColor=#36393d;fontStyle=0;shadow=1;fontColor=#FFFFFF;" parent="1" vertex="1"> |
| 47 | + <mxGeometry x="130" y="320" width="110" height="30" as="geometry" /> |
| 48 | + </mxCell> |
| 49 | + <mxCell id="vchln5ag20XoXQJFKDUu-2000" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#CCE5FF;strokeColor=none;fontSize=14;fontStyle=1;strokeWidth=3.937;gradientColor=#5089C8;arcSize=50;sketch=1;curveFitting=1;jiggle=1;" parent="1" vertex="1"> |
| 50 | + <mxGeometry x="970" y="156.42000000000002" width="39.37" height="19.685" as="geometry" /> |
| 51 | + </mxCell> |
| 52 | + <mxCell id="vchln5ag20XoXQJFKDUu-2004" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFCC;strokeColor=none;fontSize=14;fontStyle=1;strokeWidth=3.937;gradientColor=#FFF2CC;arcSize=50;sketch=1;curveFitting=1;jiggle=1;" parent="1" vertex="1"> |
| 53 | + <mxGeometry x="970" y="185.9475" width="39.37" height="19.685" as="geometry" /> |
| 54 | + </mxCell> |
| 55 | + <mxCell id="vchln5ag20XoXQJFKDUu-2005" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFCCCC;strokeColor=none;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#990000;arcSize=50;" parent="1" vertex="1"> |
| 56 | + <mxGeometry x="970" y="215.475" width="39.37" height="19.685" as="geometry" /> |
| 57 | + </mxCell> |
| 58 | + <mxCell id="vchln5ag20XoXQJFKDUu-2007" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#A25DE9;strokeColor=none;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#E5CCFF;arcSize=50;" parent="1" vertex="1"> |
| 59 | + <mxGeometry x="970" y="245.0025" width="39.37" height="19.685" as="geometry" /> |
| 60 | + </mxCell> |
| 61 | + <mxCell id="vchln5ag20XoXQJFKDUu-2008" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=none;fontSize=14;fontStyle=1;strokeWidth=3.937;sketch=1;curveFitting=1;jiggle=1;gradientColor=#00994D;arcSize=50;" parent="1" vertex="1"> |
| 62 | + <mxGeometry x="970" y="274.53" width="39.37" height="19.685" as="geometry" /> |
| 63 | + </mxCell> |
| 64 | + <mxCell id="vchln5ag20XoXQJFKDUu-2009" value="" style="shape=trapezoid;direction=west;whiteSpace=wrap;html=1;fillColor=#202020;fontColor=default;strokeColor=none;gradientColor=#F4F4F4;shadow=1;sketch=1;jiggle=1;curveFitting=1;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;gradientDirection=west;strokeWidth=3.937;" parent="1" vertex="1"> |
| 65 | + <mxGeometry x="979.8399999999999" y="304.0575" width="19.685" height="29.5275" as="geometry" /> |
| 66 | + </mxCell> |
| 67 | + <mxCell id="vchln5ag20XoXQJFKDUu-2013" value="<span style="font-family: Helvetica;">Presentation Layer – REST endpoints, DTOs</span>" style="text;strokeColor=none;fillColor=none;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1"> |
| 68 | + <mxGeometry x="1032.05" y="156.42000000000002" width="280" height="19.68" as="geometry" /> |
| 69 | + </mxCell> |
| 70 | + <mxCell id="vchln5ag20XoXQJFKDUu-2014" value="<span style="font-family: Helvetica;">Service Layer – Use cases, orchestration</span>" style="text;strokeColor=none;fillColor=none;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1"> |
| 71 | + <mxGeometry x="1032.05" y="185.95" width="240" height="19.69" as="geometry" /> |
| 72 | + </mxCell> |
| 73 | + <mxCell id="vchln5ag20XoXQJFKDUu-2015" value="<span style="font-family: Helvetica;">Shared/Common – Contracts, DTOs, constants</span>" style="text;strokeColor=none;fillColor=none;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1"> |
| 74 | + <mxGeometry x="1032.05" y="215.47" width="270" height="19.69" as="geometry" /> |
| 75 | + </mxCell> |
| 76 | + <mxCell id="vchln5ag20XoXQJFKDUu-2016" value="<span style="font-family: Helvetica;">Entities, business rules</span>" style="text;strokeColor=none;fillColor=none;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1"> |
| 77 | + <mxGeometry x="1032.05" y="245.0025" width="196.85" height="19.685" as="geometry" /> |
| 78 | + </mxCell> |
| 79 | + <mxCell id="vchln5ag20XoXQJFKDUu-2018" value="<span style="font-family: Helvetica;">Database, APIs</span>" style="text;strokeColor=none;fillColor=none;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1"> |
| 80 | + <mxGeometry x="1032.05" y="274.53" width="196.85" height="19.685" as="geometry" /> |
| 81 | + </mxCell> |
| 82 | + <mxCell id="vchln5ag20XoXQJFKDUu-2020" value="<span style="font-family: Helvetica;">Cross-Cutting Concerts – Utils, Logging, etc.</span>" style="text;strokeColor=none;fillColor=none;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1"> |
| 83 | + <mxGeometry x="1032.05" y="304.06" width="270" height="19.69" as="geometry" /> |
| 84 | + </mxCell> |
| 85 | + <mxCell id="vchln5ag20XoXQJFKDUu-2022" value="<font face="Architects Daughter"><span style="font-size: 24px;"><b>Legend</b></span></font>" style="text;strokeColor=none;fillColor=none;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> |
| 86 | + <mxGeometry x="1050" y="100" width="150" height="30" as="geometry" /> |
| 87 | + </mxCell> |
| 88 | + </root> |
| 89 | + </mxGraphModel> |
| 90 | + </diagram> |
| 91 | +</mxfile> |
0 commit comments