Skip to content

Commit

Permalink
Vertical Slice Architecture (Modular Monolith)
Browse files Browse the repository at this point in the history
  • Loading branch information
phongnguyend committed Sep 13, 2023
1 parent be6db70 commit e5bfbc8
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 8 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@

[*(open on draw.io)*](https://www.draw.io/#Uhttps%3A%2F%2Fraw.githubusercontent.com%2Fphongnguyend%2FPractical.CleanArchitecture%2Fmaster%2Fdocs%2Fimgs%2Ftesting-pyramid.drawio)

# Vertical Slice Architecture
# Vertical Slice Architecture (Modular Monolith)
![alt text](/docs/imgs/vertical-slice-architecture.png)

[*(open on draw.io)*](https://www.draw.io/#Uhttps%3A%2F%2Fraw.githubusercontent.com%2Fphongnguyend%2FPractical.CleanArchitecture%2Fmaster%2Fdocs%2Fimgs%2Fvertical-slice-architecture.drawio)
Expand Down
74 changes: 67 additions & 7 deletions docs/imgs/vertical-slice-architecture.drawio
Original file line number Diff line number Diff line change
@@ -1,26 +1,86 @@
<mxfile host="app.diagrams.net" modified="2023-09-13T04:30:39.069Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" etag="VW8QJug0ocXYGfhG451S" version="21.7.4" type="device">
<mxfile host="app.diagrams.net" modified="2023-09-13T04:50:49.629Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" etag="d7W7oE4YU3NswE9Jexl0" version="21.7.4" type="device">
<diagram id="rOsOsXzstShcfSepX0iM" name="Page-1">
<mxGraphModel dx="1434" dy="768" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="hoIVqcJ50_7qzDen5r93-2" value="Presentation" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
<mxGeometry x="240" y="160" width="280" height="40" as="geometry" />
<mxGeometry x="258.74" y="160" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="hoIVqcJ50_7qzDen5r93-3" value="Application" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="240" y="220" width="280" height="40" as="geometry" />
<mxGeometry x="258.74" y="220" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="hoIVqcJ50_7qzDen5r93-4" value="Domain" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="240" y="280" width="280" height="40" as="geometry" />
<mxGeometry x="258.74" y="280" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="hoIVqcJ50_7qzDen5r93-5" value="Database" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;fontStyle=1;spacingTop=3;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="240" y="400" width="280" height="40" as="geometry" />
<mxGeometry x="258.74" y="400" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="hoIVqcJ50_7qzDen5r93-14" value="Infrastructure" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
<mxGeometry x="240" y="340" width="280" height="40" as="geometry" />
<mxGeometry x="258.74" y="340" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="hoIVqcJ50_7qzDen5r93-22" value="Feature" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#d5e8d4;strokeColor=#82b366;rotation=90;" parent="1" vertex="1">
<mxGeometry x="107.5" y="277.5" width="325" height="40" as="geometry" />
<mxGeometry x="126.24" y="277.5" width="325" height="40" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-4" value="Database" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.database;whiteSpace=wrap;fontStyle=1;spacingTop=3;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="258.74" y="740" width="280" height="40" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-7" value="Presentation" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="327.48" y="590" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-8" value="Application" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="327.48" y="620" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-9" value="Domain" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="327.48" y="650" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-10" value="Infrastructure" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="327.48" y="678.13" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-19" value="Feature" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="118.74" y="560" width="160" height="150" as="geometry">
<mxRectangle x="80" y="565" width="80" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-1" value="Presentation" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-19">
<mxGeometry x="10" y="30" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-2" value="Application" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-19">
<mxGeometry x="10" y="60" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-3" value="Domain" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-19">
<mxGeometry x="10" y="91.55999999999995" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-5" value="Infrastructure" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-19">
<mxGeometry x="10" y="119.69000000000005" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-20" value="Feature" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="318.74" y="560" width="160" height="150" as="geometry">
<mxRectangle x="80" y="565" width="80" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-21" value="Feature" style="swimlane;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="518.74" y="560" width="160" height="150" as="geometry">
<mxRectangle x="80" y="565" width="80" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-12" value="Presentation" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-21">
<mxGeometry x="10" y="30" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-13" value="Application" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-21">
<mxGeometry x="10" y="60" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-14" value="Domain" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-21">
<mxGeometry x="10" y="90" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-15" value="Infrastructure" style="rounded=1;whiteSpace=wrap;html=1;fontStyle=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="8zcvLwhhi0DhRgsRPqg2-21">
<mxGeometry x="10" y="118.13" width="140" height="20" as="geometry" />
</mxCell>
<mxCell id="8zcvLwhhi0DhRgsRPqg2-22" value="" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;fillColor=#008a00;strokeColor=#005700;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="400.24" y="480" as="sourcePoint" />
<mxPoint x="400.24" y="530" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
Expand Down
Binary file modified docs/imgs/vertical-slice-architecture.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit e5bfbc8

Please sign in to comment.