Remove REST API, keep GraphQL as sole API
- Add missing GraphQL mutations: retryJob, updateAsset, deleteAsset - Add UpdateAssetRequest and DeleteResult to schema source of truth - Move Lambda callback endpoint to main.py (only REST endpoint) - Remove REST routes, pydantic schemas, and deps - Remove pydantic target from modelgen.json - Update architecture diagrams and documentation
This commit is contained in:
@@ -4,31 +4,31 @@
|
||||
<!-- Generated by graphviz version 14.1.2 (0)
|
||||
-->
|
||||
<!-- Title: local_architecture Pages: 1 -->
|
||||
<svg width="667pt" height="1108pt"
|
||||
viewBox="0.00 0.00 667.00 1108.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1103.51)">
|
||||
<svg width="667pt" height="1095pt"
|
||||
viewBox="0.00 0.00 667.00 1095.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1090.76)">
|
||||
<title>local_architecture</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1103.51 663,-1103.51 663,4 -4,4"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="329.5" y="-1080.31" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">MPR - Local Architecture (Celery + MinIO)</text>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-1090.76 663,-1090.76 663,4 -4,4"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="329.5" y="-1067.56" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">MPR - Local Architecture (Celery + MinIO)</text>
|
||||
<g id="clust1" class="cluster">
|
||||
<title>cluster_external</title>
|
||||
<polygon fill="none" stroke="gray" stroke-dasharray="5,2" points="270,-960.41 270,-1064.01 424,-1064.01 424,-960.41 270,-960.41"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-1044.81" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">External</text>
|
||||
<polygon fill="none" stroke="gray" stroke-dasharray="5,2" points="270,-947.66 270,-1051.26 424,-1051.26 424,-947.66 270,-947.66"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-1032.06" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">External</text>
|
||||
</g>
|
||||
<g id="clust2" class="cluster">
|
||||
<title>cluster_proxy</title>
|
||||
<polygon fill="#e8f4f8" stroke="black" points="274,-832.66 274,-918.66 420,-918.66 420,-832.66 274,-832.66"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-899.46" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Reverse Proxy</text>
|
||||
<polygon fill="#e8f4f8" stroke="black" points="274,-819.91 274,-905.91 420,-905.91 420,-819.91 274,-819.91"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-886.71" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Reverse Proxy</text>
|
||||
</g>
|
||||
<g id="clust3" class="cluster">
|
||||
<title>cluster_apps</title>
|
||||
<polygon fill="#f0f8e8" stroke="black" points="19,-556.16 19,-802.66 301,-802.66 301,-556.16 19,-556.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="160" y="-783.46" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Application Layer</text>
|
||||
<polygon fill="#f0f8e8" stroke="black" points="19,-556.16 19,-789.91 301,-789.91 301,-556.16 19,-556.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="160" y="-770.71" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Application Layer</text>
|
||||
</g>
|
||||
<g id="clust4" class="cluster">
|
||||
<title>cluster_workers</title>
|
||||
<polygon fill="#fff8e8" stroke="black" points="188,-302.41 188,-501.66 364,-501.66 364,-302.41 188,-302.41"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="276" y="-482.46" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Worker Layer</text>
|
||||
<polygon fill="#fff8e8" stroke="black" points="193,-302.41 193,-501.66 369,-501.66 369,-302.41 193,-302.41"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="281" y="-482.46" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="16.00">Worker Layer</text>
|
||||
</g>
|
||||
<g id="clust5" class="cluster">
|
||||
<title>cluster_data</title>
|
||||
@@ -43,68 +43,68 @@
|
||||
<!-- browser -->
|
||||
<g id="node1" class="node">
|
||||
<title>browser</title>
|
||||
<ellipse fill="none" stroke="black" cx="347" cy="-998.46" rx="69.12" ry="30.05"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-1002.41" font-family="Helvetica,sans-Serif" font-size="14.00">Browser</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-985.16" font-family="Helvetica,sans-Serif" font-size="14.00">mpr.local.ar</text>
|
||||
<ellipse fill="none" stroke="black" cx="347" cy="-985.71" rx="69.12" ry="30.05"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-989.66" font-family="Helvetica,sans-Serif" font-size="14.00">Browser</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-972.41" font-family="Helvetica,sans-Serif" font-size="14.00">mpr.local.ar</text>
|
||||
</g>
|
||||
<!-- nginx -->
|
||||
<g id="node2" class="node">
|
||||
<title>nginx</title>
|
||||
<path fill="none" stroke="black" d="M368.5,-883.16C368.5,-883.16 325.5,-883.16 325.5,-883.16 319.5,-883.16 313.5,-877.16 313.5,-871.16 313.5,-871.16 313.5,-852.66 313.5,-852.66 313.5,-846.66 319.5,-840.66 325.5,-840.66 325.5,-840.66 368.5,-840.66 368.5,-840.66 374.5,-840.66 380.5,-846.66 380.5,-852.66 380.5,-852.66 380.5,-871.16 380.5,-871.16 380.5,-877.16 374.5,-883.16 368.5,-883.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-865.86" font-family="Helvetica,sans-Serif" font-size="14.00">nginx</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-848.61" font-family="Helvetica,sans-Serif" font-size="14.00">port 80</text>
|
||||
<path fill="none" stroke="black" d="M368.5,-870.41C368.5,-870.41 325.5,-870.41 325.5,-870.41 319.5,-870.41 313.5,-864.41 313.5,-858.41 313.5,-858.41 313.5,-839.91 313.5,-839.91 313.5,-833.91 319.5,-827.91 325.5,-827.91 325.5,-827.91 368.5,-827.91 368.5,-827.91 374.5,-827.91 380.5,-833.91 380.5,-839.91 380.5,-839.91 380.5,-858.41 380.5,-858.41 380.5,-864.41 374.5,-870.41 368.5,-870.41"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-853.11" font-family="Helvetica,sans-Serif" font-size="14.00">nginx</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347" y="-835.86" font-family="Helvetica,sans-Serif" font-size="14.00">port 80</text>
|
||||
</g>
|
||||
<!-- browser->nginx -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>browser->nginx</title>
|
||||
<path fill="none" stroke="black" d="M347,-968.15C347,-968.15 347,-895.16 347,-895.16"/>
|
||||
<polygon fill="black" stroke="black" points="350.5,-895.16 347,-885.16 343.5,-895.16 350.5,-895.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="359.75" y="-929.91" font-family="Helvetica,sans-Serif" font-size="10.00">HTTP</text>
|
||||
<path fill="none" stroke="black" d="M347,-955.4C347,-955.4 347,-882.41 347,-882.41"/>
|
||||
<polygon fill="black" stroke="black" points="350.5,-882.41 347,-872.41 343.5,-882.41 350.5,-882.41"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="359.75" y="-917.16" font-family="Helvetica,sans-Serif" font-size="10.00">HTTP</text>
|
||||
</g>
|
||||
<!-- django -->
|
||||
<g id="node3" class="node">
|
||||
<title>django</title>
|
||||
<path fill="none" stroke="black" d="M128.75,-767.16C128.75,-767.16 39.25,-767.16 39.25,-767.16 33.25,-767.16 27.25,-761.16 27.25,-755.16 27.25,-755.16 27.25,-719.41 27.25,-719.41 27.25,-713.41 33.25,-707.41 39.25,-707.41 39.25,-707.41 128.75,-707.41 128.75,-707.41 134.75,-707.41 140.75,-713.41 140.75,-719.41 140.75,-719.41 140.75,-755.16 140.75,-755.16 140.75,-761.16 134.75,-767.16 128.75,-767.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-749.86" font-family="Helvetica,sans-Serif" font-size="14.00">Django Admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-732.61" font-family="Helvetica,sans-Serif" font-size="14.00">/admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-715.36" font-family="Helvetica,sans-Serif" font-size="14.00">port 8701</text>
|
||||
<path fill="none" stroke="black" d="M128.75,-754.41C128.75,-754.41 39.25,-754.41 39.25,-754.41 33.25,-754.41 27.25,-748.41 27.25,-742.41 27.25,-742.41 27.25,-706.66 27.25,-706.66 27.25,-700.66 33.25,-694.66 39.25,-694.66 39.25,-694.66 128.75,-694.66 128.75,-694.66 134.75,-694.66 140.75,-700.66 140.75,-706.66 140.75,-706.66 140.75,-742.41 140.75,-742.41 140.75,-748.41 134.75,-754.41 128.75,-754.41"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-737.11" font-family="Helvetica,sans-Serif" font-size="14.00">Django Admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-719.86" font-family="Helvetica,sans-Serif" font-size="14.00">/admin</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="84" y="-702.61" font-family="Helvetica,sans-Serif" font-size="14.00">port 8701</text>
|
||||
</g>
|
||||
<!-- nginx->django -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>nginx->django</title>
|
||||
<path fill="none" stroke="black" d="M313.16,-869C242.12,-869 84,-869 84,-869 84,-869 84,-779.01 84,-779.01"/>
|
||||
<polygon fill="black" stroke="black" points="87.5,-779.01 84,-769.01 80.5,-779.01 87.5,-779.01"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="136.71" y="-872.25" font-family="Helvetica,sans-Serif" font-size="10.00">/admin</text>
|
||||
<path fill="none" stroke="black" d="M313.16,-856C242.12,-856 84,-856 84,-856 84,-856 84,-766.21 84,-766.21"/>
|
||||
<polygon fill="black" stroke="black" points="87.5,-766.21 84,-756.21 80.5,-766.21 87.5,-766.21"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="136.81" y="-859.25" font-family="Helvetica,sans-Serif" font-size="10.00">/admin</text>
|
||||
</g>
|
||||
<!-- fastapi -->
|
||||
<g id="node4" class="node">
|
||||
<title>fastapi</title>
|
||||
<path fill="none" stroke="black" d="M281.38,-623.91C281.38,-623.91 156.62,-623.91 156.62,-623.91 150.62,-623.91 144.62,-617.91 144.62,-611.91 144.62,-611.91 144.62,-576.16 144.62,-576.16 144.62,-570.16 150.62,-564.16 156.62,-564.16 156.62,-564.16 281.38,-564.16 281.38,-564.16 287.38,-564.16 293.38,-570.16 293.38,-576.16 293.38,-576.16 293.38,-611.91 293.38,-611.91 293.38,-617.91 287.38,-623.91 281.38,-623.91"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="219" y="-606.61" font-family="Helvetica,sans-Serif" font-size="14.00">FastAPI + GraphQL</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="219" y="-589.36" font-family="Helvetica,sans-Serif" font-size="14.00">/api + /graphql</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="219" y="-572.11" font-family="Helvetica,sans-Serif" font-size="14.00">port 8702</text>
|
||||
<path fill="none" stroke="black" d="M281.25,-623.91C281.25,-623.91 200.75,-623.91 200.75,-623.91 194.75,-623.91 188.75,-617.91 188.75,-611.91 188.75,-611.91 188.75,-576.16 188.75,-576.16 188.75,-570.16 194.75,-564.16 200.75,-564.16 200.75,-564.16 281.25,-564.16 281.25,-564.16 287.25,-564.16 293.25,-570.16 293.25,-576.16 293.25,-576.16 293.25,-611.91 293.25,-611.91 293.25,-617.91 287.25,-623.91 281.25,-623.91"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="241" y="-606.61" font-family="Helvetica,sans-Serif" font-size="14.00">GraphQL API</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="241" y="-589.36" font-family="Helvetica,sans-Serif" font-size="14.00">/graphql</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="241" y="-572.11" font-family="Helvetica,sans-Serif" font-size="14.00">port 8702</text>
|
||||
</g>
|
||||
<!-- nginx->fastapi -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>nginx->fastapi</title>
|
||||
<path fill="none" stroke="black" d="M334.56,-840.44C334.56,-776.86 334.56,-594 334.56,-594 334.56,-594 305.33,-594 305.33,-594"/>
|
||||
<polygon fill="black" stroke="black" points="305.33,-590.5 295.33,-594 305.33,-597.5 305.33,-590.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="302.69" y="-693.1" font-family="Helvetica,sans-Serif" font-size="10.00">/api, /graphql</text>
|
||||
<path fill="none" stroke="black" d="M337.06,-827.84C337.06,-766.52 337.06,-594 337.06,-594 337.06,-594 305.04,-594 305.04,-594"/>
|
||||
<polygon fill="black" stroke="black" points="305.04,-590.5 295.04,-594 305.04,-597.5 305.04,-590.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="317.19" y="-698.16" font-family="Helvetica,sans-Serif" font-size="10.00">/graphql</text>
|
||||
</g>
|
||||
<!-- timeline -->
|
||||
<g id="node5" class="node">
|
||||
<title>timeline</title>
|
||||
<path fill="none" stroke="black" d="M281,-767.16C281,-767.16 211,-767.16 211,-767.16 205,-767.16 199,-761.16 199,-755.16 199,-755.16 199,-719.41 199,-719.41 199,-713.41 205,-707.41 211,-707.41 211,-707.41 281,-707.41 281,-707.41 287,-707.41 293,-713.41 293,-719.41 293,-719.41 293,-755.16 293,-755.16 293,-761.16 287,-767.16 281,-767.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="246" y="-749.86" font-family="Helvetica,sans-Serif" font-size="14.00">Timeline UI</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="246" y="-732.61" font-family="Helvetica,sans-Serif" font-size="14.00">/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="246" y="-715.36" font-family="Helvetica,sans-Serif" font-size="14.00">port 5173</text>
|
||||
<path fill="none" stroke="black" d="M281,-754.41C281,-754.41 211,-754.41 211,-754.41 205,-754.41 199,-748.41 199,-742.41 199,-742.41 199,-706.66 199,-706.66 199,-700.66 205,-694.66 211,-694.66 211,-694.66 281,-694.66 281,-694.66 287,-694.66 293,-700.66 293,-706.66 293,-706.66 293,-742.41 293,-742.41 293,-748.41 287,-754.41 281,-754.41"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="246" y="-737.11" font-family="Helvetica,sans-Serif" font-size="14.00">Timeline UI</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="246" y="-719.86" font-family="Helvetica,sans-Serif" font-size="14.00">/</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="246" y="-702.61" font-family="Helvetica,sans-Serif" font-size="14.00">port 5173</text>
|
||||
</g>
|
||||
<!-- nginx->timeline -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>nginx->timeline</title>
|
||||
<path fill="none" stroke="black" d="M313.34,-855C298.97,-855 285.44,-855 285.44,-855 285.44,-855 285.44,-779.11 285.44,-779.11"/>
|
||||
<polygon fill="black" stroke="black" points="288.94,-779.11 285.44,-769.11 281.94,-779.11 288.94,-779.11"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="283.94" y="-834.25" font-family="Helvetica,sans-Serif" font-size="10.00">/</text>
|
||||
<path fill="none" stroke="black" d="M313.34,-842C298.97,-842 285.44,-842 285.44,-842 285.44,-842 285.44,-766.3 285.44,-766.3"/>
|
||||
<polygon fill="black" stroke="black" points="288.94,-766.3 285.44,-756.3 281.94,-766.3 288.94,-766.3"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="283.94" y="-821.35" font-family="Helvetica,sans-Serif" font-size="10.00">/</text>
|
||||
</g>
|
||||
<!-- minio -->
|
||||
<g id="node10" class="node">
|
||||
@@ -117,9 +117,9 @@
|
||||
<!-- nginx->minio -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>nginx->minio</title>
|
||||
<path fill="none" stroke="black" d="M368.06,-840.47C368.06,-840.47 368.06,-200.34 368.06,-200.34"/>
|
||||
<polygon fill="black" stroke="black" points="371.56,-200.34 368.06,-190.34 364.56,-200.34 371.56,-200.34"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="347.06" y="-523.66" font-family="Helvetica,sans-Serif" font-size="10.00">/media/*</text>
|
||||
<path fill="none" stroke="black" d="M370.56,-827.73C370.56,-827.73 370.56,-200.13 370.56,-200.13"/>
|
||||
<polygon fill="black" stroke="black" points="374.06,-200.13 370.56,-190.13 367.06,-200.13 374.06,-200.13"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="391.56" y="-517.18" font-family="Helvetica,sans-Serif" font-size="10.00">/media/*</text>
|
||||
</g>
|
||||
<!-- postgres -->
|
||||
<g id="node8" class="node">
|
||||
@@ -132,58 +132,57 @@
|
||||
<!-- django->postgres -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>django->postgres</title>
|
||||
<path fill="none" stroke="black" d="M55.42,-706.98C55.42,-706.98 55.42,-199.74 55.42,-199.74"/>
|
||||
<polygon fill="black" stroke="black" points="58.92,-199.74 55.42,-189.74 51.92,-199.74 58.92,-199.74"/>
|
||||
<path fill="none" stroke="black" d="M48.38,-694.5C48.38,-694.5 48.38,-199.71 48.38,-199.71"/>
|
||||
<polygon fill="black" stroke="black" points="51.88,-199.71 48.38,-189.71 44.88,-199.71 51.88,-199.71"/>
|
||||
</g>
|
||||
<!-- grpc_server -->
|
||||
<g id="node6" class="node">
|
||||
<title>grpc_server</title>
|
||||
<path fill="none" stroke="black" d="M296.5,-466.16C296.5,-466.16 217.5,-466.16 217.5,-466.16 211.5,-466.16 205.5,-460.16 205.5,-454.16 205.5,-454.16 205.5,-435.66 205.5,-435.66 205.5,-429.66 211.5,-423.66 217.5,-423.66 217.5,-423.66 296.5,-423.66 296.5,-423.66 302.5,-423.66 308.5,-429.66 308.5,-435.66 308.5,-435.66 308.5,-454.16 308.5,-454.16 308.5,-460.16 302.5,-466.16 296.5,-466.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="257" y="-448.86" font-family="Helvetica,sans-Serif" font-size="14.00">gRPC Server</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="257" y="-431.61" font-family="Helvetica,sans-Serif" font-size="14.00">port 50051</text>
|
||||
<path fill="none" stroke="black" d="M301.5,-466.16C301.5,-466.16 222.5,-466.16 222.5,-466.16 216.5,-466.16 210.5,-460.16 210.5,-454.16 210.5,-454.16 210.5,-435.66 210.5,-435.66 210.5,-429.66 216.5,-423.66 222.5,-423.66 222.5,-423.66 301.5,-423.66 301.5,-423.66 307.5,-423.66 313.5,-429.66 313.5,-435.66 313.5,-435.66 313.5,-454.16 313.5,-454.16 313.5,-460.16 307.5,-466.16 301.5,-466.16"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="262" y="-448.86" font-family="Helvetica,sans-Serif" font-size="14.00">gRPC Server</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="262" y="-431.61" font-family="Helvetica,sans-Serif" font-size="14.00">port 50051</text>
|
||||
</g>
|
||||
<!-- fastapi->grpc_server -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>fastapi->grpc_server</title>
|
||||
<path fill="none" stroke="black" d="M249.44,-563.85C249.44,-563.85 249.44,-477.88 249.44,-477.88"/>
|
||||
<polygon fill="black" stroke="black" points="252.94,-477.88 249.44,-467.88 245.94,-477.88 252.94,-477.88"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="276" y="-525.66" font-family="Helvetica,sans-Serif" font-size="10.00">gRPC</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="276" y="-512.91" font-family="Helvetica,sans-Serif" font-size="10.00">progress updates</text>
|
||||
<path fill="none" stroke="black" d="M251.88,-563.85C251.88,-563.85 251.88,-477.88 251.88,-477.88"/>
|
||||
<polygon fill="black" stroke="black" points="255.38,-477.88 251.88,-467.88 248.38,-477.88 255.38,-477.88"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="292" y="-525.66" font-family="Helvetica,sans-Serif" font-size="10.00">gRPC</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="292" y="-512.91" font-family="Helvetica,sans-Serif" font-size="10.00">progress updates</text>
|
||||
</g>
|
||||
<!-- fastapi->postgres -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>fastapi->postgres</title>
|
||||
<path fill="none" stroke="black" d="M157.25,-563.79C157.25,-465.13 157.25,-159 157.25,-159 157.25,-159 123.5,-159 123.5,-159"/>
|
||||
<polygon fill="black" stroke="black" points="123.5,-155.5 113.5,-159 123.5,-162.5 123.5,-155.5"/>
|
||||
<path fill="none" stroke="black" d="M188.61,-594C138.18,-594 69.5,-594 69.5,-594 69.5,-594 69.5,-199.68 69.5,-199.68"/>
|
||||
<polygon fill="black" stroke="black" points="73,-199.68 69.5,-189.68 66,-199.68 73,-199.68"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="82.38" y="-385.16" font-family="Helvetica,sans-Serif" font-size="10.00">read/write jobs</text>
|
||||
</g>
|
||||
<!-- timeline->fastapi -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>timeline->fastapi</title>
|
||||
<path fill="none" stroke="black" d="M246,-707.25C246,-707.25 246,-635.54 246,-635.54"/>
|
||||
<polygon fill="black" stroke="black" points="249.5,-635.54 246,-625.54 242.5,-635.54 249.5,-635.54"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="253.75" y="-668.91" font-family="Helvetica,sans-Serif" font-size="10.00">REST API</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="253.75" y="-656.16" font-family="Helvetica,sans-Serif" font-size="10.00">GraphQL</text>
|
||||
<path fill="none" stroke="black" d="M246,-694.26C246,-694.26 246,-635.65 246,-635.65"/>
|
||||
<polygon fill="black" stroke="black" points="249.5,-635.65 246,-625.65 242.5,-635.65 249.5,-635.65"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="264" y="-656.16" font-family="Helvetica,sans-Serif" font-size="10.00">GraphQL</text>
|
||||
</g>
|
||||
<!-- celery -->
|
||||
<g id="node7" class="node">
|
||||
<title>celery</title>
|
||||
<path fill="none" stroke="black" d="M343.62,-352.91C343.62,-352.91 208.38,-352.91 208.38,-352.91 202.38,-352.91 196.38,-346.91 196.38,-340.91 196.38,-340.91 196.38,-322.41 196.38,-322.41 196.38,-316.41 202.38,-310.41 208.38,-310.41 208.38,-310.41 343.62,-310.41 343.62,-310.41 349.62,-310.41 355.62,-316.41 355.62,-322.41 355.62,-322.41 355.62,-340.91 355.62,-340.91 355.62,-346.91 349.62,-352.91 343.62,-352.91"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="276" y="-335.61" font-family="Helvetica,sans-Serif" font-size="14.00">Celery Worker</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="276" y="-318.36" font-family="Helvetica,sans-Serif" font-size="14.00">FFmpeg transcoding</text>
|
||||
<path fill="none" stroke="black" d="M348.62,-352.91C348.62,-352.91 213.38,-352.91 213.38,-352.91 207.38,-352.91 201.38,-346.91 201.38,-340.91 201.38,-340.91 201.38,-322.41 201.38,-322.41 201.38,-316.41 207.38,-310.41 213.38,-310.41 213.38,-310.41 348.62,-310.41 348.62,-310.41 354.62,-310.41 360.62,-316.41 360.62,-322.41 360.62,-322.41 360.62,-340.91 360.62,-340.91 360.62,-346.91 354.62,-352.91 348.62,-352.91"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="281" y="-335.61" font-family="Helvetica,sans-Serif" font-size="14.00">Celery Worker</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="281" y="-318.36" font-family="Helvetica,sans-Serif" font-size="14.00">FFmpeg transcoding</text>
|
||||
</g>
|
||||
<!-- grpc_server->celery -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>grpc_server->celery</title>
|
||||
<path fill="none" stroke="black" d="M257,-423.34C257,-423.34 257,-364.66 257,-364.66"/>
|
||||
<polygon fill="black" stroke="black" points="260.5,-364.66 257,-354.66 253.5,-364.66 260.5,-364.66"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="300.25" y="-385.16" font-family="Helvetica,sans-Serif" font-size="10.00">dispatch tasks</text>
|
||||
<path fill="none" stroke="black" d="M262,-423.34C262,-423.34 262,-364.66 262,-364.66"/>
|
||||
<polygon fill="black" stroke="black" points="265.5,-364.66 262,-354.66 258.5,-364.66 265.5,-364.66"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="305.25" y="-385.16" font-family="Helvetica,sans-Serif" font-size="10.00">dispatch tasks</text>
|
||||
</g>
|
||||
<!-- celery->postgres -->
|
||||
<g id="edge12" class="edge">
|
||||
<title>celery->postgres</title>
|
||||
<path fill="none" stroke="black" d="M196.07,-332C143.2,-332 83.58,-332 83.58,-332 83.58,-332 83.58,-199.51 83.58,-199.51"/>
|
||||
<polygon fill="black" stroke="black" points="87.08,-199.51 83.58,-189.51 80.08,-199.51 87.08,-199.51"/>
|
||||
<path fill="none" stroke="black" d="M201.09,-332C148.99,-332 90.62,-332 90.62,-332 90.62,-332 90.62,-199.51 90.62,-199.51"/>
|
||||
<polygon fill="black" stroke="black" points="94.13,-199.51 90.63,-189.51 87.13,-199.51 94.13,-199.51"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="181.38" y="-259.16" font-family="Helvetica,sans-Serif" font-size="10.00">update job status</text>
|
||||
</g>
|
||||
<!-- redis -->
|
||||
@@ -198,15 +197,15 @@
|
||||
<!-- celery->redis -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>celery->redis</title>
|
||||
<path fill="none" stroke="black" d="M237.25,-310.09C237.25,-310.09 237.25,-211.49 237.25,-211.49"/>
|
||||
<polygon fill="black" stroke="black" points="240.75,-211.49 237.25,-201.49 233.75,-211.49 240.75,-211.49"/>
|
||||
<path fill="none" stroke="black" d="M239.75,-310.09C239.75,-310.09 239.75,-211.49 239.75,-211.49"/>
|
||||
<polygon fill="black" stroke="black" points="243.25,-211.49 239.75,-201.49 236.25,-211.49 243.25,-211.49"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="314" y="-259.16" font-family="Helvetica,sans-Serif" font-size="10.00">task queue</text>
|
||||
</g>
|
||||
<!-- celery->minio -->
|
||||
<g id="edge13" class="edge">
|
||||
<title>celery->minio</title>
|
||||
<path fill="none" stroke="black" d="M349.62,-310.09C349.62,-310.09 349.62,-200.39 349.62,-200.39"/>
|
||||
<polygon fill="black" stroke="black" points="353.13,-200.39 349.63,-190.39 346.13,-200.39 353.13,-200.39"/>
|
||||
<path fill="none" stroke="black" d="M352.12,-310.09C352.12,-310.09 352.12,-200.39 352.12,-200.39"/>
|
||||
<polygon fill="black" stroke="black" points="355.63,-200.39 352.13,-190.39 348.63,-200.39 355.63,-200.39"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="441.5" y="-271.91" font-family="Helvetica,sans-Serif" font-size="10.00">S3 API</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="441.5" y="-259.16" font-family="Helvetica,sans-Serif" font-size="10.00">download input</text>
|
||||
<text xml:space="preserve" text-anchor="middle" x="441.5" y="-246.41" font-family="Helvetica,sans-Serif" font-size="10.00">upload output</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Reference in New Issue
Block a user