yycode 0.3.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agent/__init__.py +33 -0
- agent/acp/__init__.py +2 -0
- agent/acp/approval_adapter.py +134 -0
- agent/acp/content_adapter.py +45 -0
- agent/acp/jsonrpc.py +92 -0
- agent/acp/server.py +197 -0
- agent/acp/session_manager.py +193 -0
- agent/acp/update_adapter.py +192 -0
- agent/app_paths.py +25 -0
- agent/approval.py +169 -0
- agent/cancellation.py +52 -0
- agent/change_snapshot.py +186 -0
- agent/context_compressor.py +116 -0
- agent/graph.py +137 -0
- agent/llm_retry.py +434 -0
- agent/logger.py +97 -0
- agent/lsp/__init__.py +13 -0
- agent/lsp/client.py +151 -0
- agent/lsp/manager.py +234 -0
- agent/lsp/types.py +119 -0
- agent/message_context_manager.py +322 -0
- agent/message_format.py +105 -0
- agent/nodes/llm_node.py +58 -0
- agent/nodes/state.py +12 -0
- agent/nodes/task_guard_node.py +50 -0
- agent/nodes/tools_node.py +70 -0
- agent/plan_snapshot.py +70 -0
- agent/providers/__init__.py +13 -0
- agent/providers/anthropic_provider.py +268 -0
- agent/providers/base.py +52 -0
- agent/providers/openai_provider.py +279 -0
- agent/providers/text_tool_calls.py +118 -0
- agent/runtime/approval_service.py +184 -0
- agent/runtime/context.py +43 -0
- agent/runtime/tool_events.py +368 -0
- agent/runtime/tool_executor.py +208 -0
- agent/runtime/tool_output.py +261 -0
- agent/runtime/tool_registry.py +91 -0
- agent/runtime/tool_scheduler.py +35 -0
- agent/runtime/workflow_guard.py +217 -0
- agent/runtime/workspace.py +5 -0
- agent/runtime/workspace_tools.py +22 -0
- agent/session.py +787 -0
- agent/session_replay.py +95 -0
- agent/session_store.py +186 -0
- agent/skills.py +254 -0
- agent/streaming.py +248 -0
- agent/subagent.py +634 -0
- agent/task_memory.py +340 -0
- agent/todo_manager.py +304 -0
- agent/tool_retry.py +106 -0
- agent/tui/__init__.py +14 -0
- agent/tui/app.py +1325 -0
- agent/tui/approval.py +53 -0
- agent/tui/commands/__init__.py +6 -0
- agent/tui/commands/base.py +48 -0
- agent/tui/commands/clear.py +37 -0
- agent/tui/commands/help.py +27 -0
- agent/tui/commands/registry.py +94 -0
- agent/tui/help_content.py +108 -0
- agent/tui/renderers.py +1961 -0
- agent/tui/runner.py +439 -0
- agent/tui/state.py +653 -0
- main.py +465 -0
- tools/__init__.py +50 -0
- tools/apply_patch.py +305 -0
- tools/bash.py +76 -0
- tools/diff_utils.py +139 -0
- tools/edit_file.py +40 -0
- tools/git_diff.py +72 -0
- tools/git_show.py +65 -0
- tools/grep.py +149 -0
- tools/list_files.py +90 -0
- tools/list_skills.py +24 -0
- tools/load_skill.py +30 -0
- tools/lsp_definition.py +27 -0
- tools/lsp_diagnostics.py +32 -0
- tools/lsp_document_symbols.py +23 -0
- tools/lsp_hover.py +29 -0
- tools/lsp_references.py +37 -0
- tools/lsp_utils.py +38 -0
- tools/lsp_workspace_symbols.py +23 -0
- tools/read_file.py +61 -0
- tools/read_many_files.py +50 -0
- tools/safety.py +50 -0
- tools/subagent.py +57 -0
- tools/todo.py +89 -0
- tools/verify.py +107 -0
- tools/web_search.py +250 -0
- tools/workspace.py +36 -0
- tools/workspace_state.py +60 -0
- tools/write_file.py +88 -0
- utils/__init__.py +5 -0
- utils/retry.py +13 -0
- yycode-0.3.2.data/data/skills/code_review.md +61 -0
- yycode-0.3.2.data/data/skills/code_workflow.md +404 -0
- yycode-0.3.2.data/data/skills/drawio/SKILL.md +636 -0
- yycode-0.3.2.data/data/skills/drawio/agents/openai.yaml +19 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-erd.drawio +84 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.drawio +91 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.drawio +112 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-layered.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ml.drawio +90 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.drawio +68 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.drawio +86 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-ring.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-sequence.drawio +116 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.drawio +66 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star.drawio +79 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-star.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/demo-uml-class.drawio +64 -0
- yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.drawio +173 -0
- yycode-0.3.2.data/data/skills/drawio/assets/microservices-example.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.drawio +120 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow-cn.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow.drawio +120 -0
- yycode-0.3.2.data/data/skills/drawio/assets/workflow.png +0 -0
- yycode-0.3.2.data/data/skills/drawio/docs/index.html +469 -0
- yycode-0.3.2.data/data/skills/drawio/docs/zh.html +456 -0
- yycode-0.3.2.data/data/skills/drawio/references/style-extraction.md +254 -0
- yycode-0.3.2.data/data/skills/drawio/styles/schema.json +112 -0
- yycode-0.3.2.data/data/skills/plan.md +115 -0
- yycode-0.3.2.data/data/skills/ppt/SKILL.md +254 -0
- yycode-0.3.2.dist-info/METADATA +12 -0
- yycode-0.3.2.dist-info/RECORD +131 -0
- yycode-0.3.2.dist-info/WHEEL +5 -0
- yycode-0.3.2.dist-info/entry_points.txt +2 -0
- yycode-0.3.2.dist-info/top_level.txt +4 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="draw.io" type="device">
|
|
3
|
+
<diagram name="Login Sequence" id="seq-login">
|
|
4
|
+
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="600" math="0" shadow="0">
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Lifeline: Client -->
|
|
10
|
+
<mxCell id="10" value="Client" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="100" y="40" width="100" height="400" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
|
|
14
|
+
<!-- Lifeline: API Gateway -->
|
|
15
|
+
<mxCell id="20" value="API Gateway" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
16
|
+
<mxGeometry x="300" y="40" width="100" height="400" as="geometry" />
|
|
17
|
+
</mxCell>
|
|
18
|
+
|
|
19
|
+
<!-- Lifeline: Auth Service -->
|
|
20
|
+
<mxCell id="30" value="Auth Service" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
21
|
+
<mxGeometry x="500" y="40" width="100" height="400" as="geometry" />
|
|
22
|
+
</mxCell>
|
|
23
|
+
|
|
24
|
+
<!-- Lifeline: User DB -->
|
|
25
|
+
<mxCell id="40" value="User DB" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
26
|
+
<mxGeometry x="700" y="40" width="100" height="400" as="geometry" />
|
|
27
|
+
</mxCell>
|
|
28
|
+
|
|
29
|
+
<!-- Message 1: Client -> API Gateway: login request (sync) -->
|
|
30
|
+
<mxCell id="51" value="login(user, pass)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=1;" edge="1" parent="1" source="10" target="20">
|
|
31
|
+
<mxGeometry relative="1" as="geometry">
|
|
32
|
+
<mxPoint x="150" y="120" as="sourcePoint" />
|
|
33
|
+
<mxPoint x="350" y="120" as="targetPoint" />
|
|
34
|
+
<Array as="points">
|
|
35
|
+
<mxPoint x="150" y="120" />
|
|
36
|
+
<mxPoint x="350" y="120" />
|
|
37
|
+
</Array>
|
|
38
|
+
</mxGeometry>
|
|
39
|
+
</mxCell>
|
|
40
|
+
|
|
41
|
+
<!-- Message 2: API Gateway -> Auth Service: forward auth (sync) -->
|
|
42
|
+
<mxCell id="52" value="authenticate(user, pass)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=1;" edge="1" parent="1" source="20" target="30">
|
|
43
|
+
<mxGeometry relative="1" as="geometry">
|
|
44
|
+
<mxPoint x="350" y="160" as="sourcePoint" />
|
|
45
|
+
<mxPoint x="550" y="160" as="targetPoint" />
|
|
46
|
+
<Array as="points">
|
|
47
|
+
<mxPoint x="350" y="160" />
|
|
48
|
+
<mxPoint x="550" y="160" />
|
|
49
|
+
</Array>
|
|
50
|
+
</mxGeometry>
|
|
51
|
+
</mxCell>
|
|
52
|
+
|
|
53
|
+
<!-- Message 3: Auth Service -> User DB: query user (sync) -->
|
|
54
|
+
<mxCell id="53" value="SELECT * FROM users" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=1;" edge="1" parent="1" source="30" target="40">
|
|
55
|
+
<mxGeometry relative="1" as="geometry">
|
|
56
|
+
<mxPoint x="550" y="200" as="sourcePoint" />
|
|
57
|
+
<mxPoint x="750" y="200" as="targetPoint" />
|
|
58
|
+
<Array as="points">
|
|
59
|
+
<mxPoint x="550" y="200" />
|
|
60
|
+
<mxPoint x="750" y="200" />
|
|
61
|
+
</Array>
|
|
62
|
+
</mxGeometry>
|
|
63
|
+
</mxCell>
|
|
64
|
+
|
|
65
|
+
<!-- Message 4: User DB -> Auth Service: return user data (dashed return) -->
|
|
66
|
+
<mxCell id="54" value="userData" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;strokeColor=#999999;edgeStyle=orthogonalEdgeStyle;rounded=1;" edge="1" parent="1" source="40" target="30">
|
|
67
|
+
<mxGeometry relative="1" as="geometry">
|
|
68
|
+
<mxPoint x="750" y="240" as="sourcePoint" />
|
|
69
|
+
<mxPoint x="550" y="240" as="targetPoint" />
|
|
70
|
+
<Array as="points">
|
|
71
|
+
<mxPoint x="750" y="240" />
|
|
72
|
+
<mxPoint x="550" y="240" />
|
|
73
|
+
</Array>
|
|
74
|
+
</mxGeometry>
|
|
75
|
+
</mxCell>
|
|
76
|
+
|
|
77
|
+
<!-- Message 5: Auth Service generates JWT (self-call note) -->
|
|
78
|
+
<mxCell id="55" value="generateJWT(userData)" style="html=1;verticalAlign=bottom;endArrow=block;edgeStyle=orthogonalEdgeStyle;rounded=1;" edge="1" parent="1" source="30" target="30">
|
|
79
|
+
<mxGeometry relative="1" as="geometry">
|
|
80
|
+
<mxPoint x="550" y="280" as="sourcePoint" />
|
|
81
|
+
<mxPoint x="600" y="280" as="targetPoint" />
|
|
82
|
+
<Array as="points">
|
|
83
|
+
<mxPoint x="600" y="270" />
|
|
84
|
+
<mxPoint x="600" y="290" />
|
|
85
|
+
</Array>
|
|
86
|
+
</mxGeometry>
|
|
87
|
+
</mxCell>
|
|
88
|
+
|
|
89
|
+
<!-- Message 6: Auth Service -> API Gateway: return token (dashed return) -->
|
|
90
|
+
<mxCell id="56" value="JWT token" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;strokeColor=#999999;edgeStyle=orthogonalEdgeStyle;rounded=1;" edge="1" parent="1" source="30" target="20">
|
|
91
|
+
<mxGeometry relative="1" as="geometry">
|
|
92
|
+
<mxPoint x="550" y="320" as="sourcePoint" />
|
|
93
|
+
<mxPoint x="350" y="320" as="targetPoint" />
|
|
94
|
+
<Array as="points">
|
|
95
|
+
<mxPoint x="550" y="320" />
|
|
96
|
+
<mxPoint x="350" y="320" />
|
|
97
|
+
</Array>
|
|
98
|
+
</mxGeometry>
|
|
99
|
+
</mxCell>
|
|
100
|
+
|
|
101
|
+
<!-- Message 7: API Gateway -> Client: return token (dashed return) -->
|
|
102
|
+
<mxCell id="57" value="{ token: JWT }" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;strokeColor=#999999;edgeStyle=orthogonalEdgeStyle;rounded=1;" edge="1" parent="1" source="20" target="10">
|
|
103
|
+
<mxGeometry relative="1" as="geometry">
|
|
104
|
+
<mxPoint x="350" y="360" as="sourcePoint" />
|
|
105
|
+
<mxPoint x="150" y="360" as="targetPoint" />
|
|
106
|
+
<Array as="points">
|
|
107
|
+
<mxPoint x="350" y="360" />
|
|
108
|
+
<mxPoint x="150" y="360" />
|
|
109
|
+
</Array>
|
|
110
|
+
</mxGeometry>
|
|
111
|
+
</mxCell>
|
|
112
|
+
|
|
113
|
+
</root>
|
|
114
|
+
</mxGraphModel>
|
|
115
|
+
</diagram>
|
|
116
|
+
</mxfile>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel>
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Hub: Kafka -->
|
|
10
|
+
<mxCell id="2" value="Kafka 消息队列" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=14;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="300" y="270" width="200" height="60" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
|
|
14
|
+
<!-- Satellite: 用户服务 (top) -->
|
|
15
|
+
<mxCell id="3" value="用户服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
16
|
+
<mxGeometry x="320" y="40" width="160" height="60" as="geometry" />
|
|
17
|
+
</mxCell>
|
|
18
|
+
|
|
19
|
+
<!-- Satellite: 订单服务 (top-right) -->
|
|
20
|
+
<mxCell id="4" value="订单服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
21
|
+
<mxGeometry x="600" y="150" width="160" height="60" as="geometry" />
|
|
22
|
+
</mxCell>
|
|
23
|
+
|
|
24
|
+
<!-- Satellite: 支付服务 (bottom-right) -->
|
|
25
|
+
<mxCell id="5" value="支付服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
26
|
+
<mxGeometry x="600" y="390" width="160" height="60" as="geometry" />
|
|
27
|
+
</mxCell>
|
|
28
|
+
|
|
29
|
+
<!-- Satellite: 库存服务 (bottom) -->
|
|
30
|
+
<mxCell id="6" value="库存服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
31
|
+
<mxGeometry x="320" y="500" width="160" height="60" as="geometry" />
|
|
32
|
+
</mxCell>
|
|
33
|
+
|
|
34
|
+
<!-- Satellite: 通知服务 (bottom-left) -->
|
|
35
|
+
<mxCell id="7" value="通知服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
36
|
+
<mxGeometry x="40" y="390" width="160" height="60" as="geometry" />
|
|
37
|
+
</mxCell>
|
|
38
|
+
|
|
39
|
+
<!-- Satellite: 分析服务 (top-left) -->
|
|
40
|
+
<mxCell id="8" value="分析服务" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
41
|
+
<mxGeometry x="40" y="150" width="160" height="60" as="geometry" />
|
|
42
|
+
</mxCell>
|
|
43
|
+
|
|
44
|
+
<!-- Edges -->
|
|
45
|
+
<mxCell id="20" value="事件" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="2">
|
|
46
|
+
<mxGeometry relative="1" as="geometry" />
|
|
47
|
+
</mxCell>
|
|
48
|
+
<mxCell id="21" value="订单" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="2">
|
|
49
|
+
<mxGeometry relative="1" as="geometry" />
|
|
50
|
+
</mxCell>
|
|
51
|
+
<mxCell id="22" value="支付" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="2">
|
|
52
|
+
<mxGeometry relative="1" as="geometry" />
|
|
53
|
+
</mxCell>
|
|
54
|
+
<mxCell id="23" value="库存" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="2">
|
|
55
|
+
<mxGeometry relative="1" as="geometry" />
|
|
56
|
+
</mxCell>
|
|
57
|
+
<mxCell id="24" value="告警" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="2">
|
|
58
|
+
<mxGeometry relative="1" as="geometry" />
|
|
59
|
+
</mxCell>
|
|
60
|
+
<mxCell id="25" value="指标" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="8" target="2">
|
|
61
|
+
<mxGeometry relative="1" as="geometry" />
|
|
62
|
+
</mxCell>
|
|
63
|
+
</root>
|
|
64
|
+
</mxGraphModel>
|
|
65
|
+
</diagram>
|
|
66
|
+
</mxfile>
|
|
Binary file
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel>
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Hub: Kafka -->
|
|
10
|
+
<mxCell id="2" value="Kafka" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1;fontSize=14;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="320" y="270" width="160" height="60" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
|
|
14
|
+
<!-- Satellite: User Service (top) -->
|
|
15
|
+
<mxCell id="3" value="User Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
16
|
+
<mxGeometry x="320" y="40" width="160" height="60" as="geometry" />
|
|
17
|
+
</mxCell>
|
|
18
|
+
|
|
19
|
+
<!-- Satellite: Order Service (top-right) -->
|
|
20
|
+
<mxCell id="4" value="Order Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
21
|
+
<mxGeometry x="600" y="150" width="160" height="60" as="geometry" />
|
|
22
|
+
</mxCell>
|
|
23
|
+
|
|
24
|
+
<!-- Satellite: Payment Service (bottom-right) -->
|
|
25
|
+
<mxCell id="5" value="Payment Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
26
|
+
<mxGeometry x="600" y="390" width="160" height="60" as="geometry" />
|
|
27
|
+
</mxCell>
|
|
28
|
+
|
|
29
|
+
<!-- Satellite: Inventory Service (bottom) -->
|
|
30
|
+
<mxCell id="6" value="Inventory Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
31
|
+
<mxGeometry x="320" y="500" width="160" height="60" as="geometry" />
|
|
32
|
+
</mxCell>
|
|
33
|
+
|
|
34
|
+
<!-- Satellite: Notification Service (bottom-left) -->
|
|
35
|
+
<mxCell id="7" value="Notification Svc" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
|
|
36
|
+
<mxGeometry x="40" y="390" width="160" height="60" as="geometry" />
|
|
37
|
+
</mxCell>
|
|
38
|
+
|
|
39
|
+
<!-- Satellite: Analytics Service (top-left) -->
|
|
40
|
+
<mxCell id="8" value="Analytics Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
|
|
41
|
+
<mxGeometry x="40" y="150" width="160" height="60" as="geometry" />
|
|
42
|
+
</mxCell>
|
|
43
|
+
|
|
44
|
+
<!-- Edges: each satellite ↔ Kafka hub -->
|
|
45
|
+
|
|
46
|
+
<!-- User Service → Kafka (top down) -->
|
|
47
|
+
<mxCell id="20" value="events" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="3" target="2">
|
|
48
|
+
<mxGeometry relative="1" as="geometry" />
|
|
49
|
+
</mxCell>
|
|
50
|
+
|
|
51
|
+
<!-- Order Service → Kafka (right to left) -->
|
|
52
|
+
<mxCell id="21" value="orders" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="4" target="2">
|
|
53
|
+
<mxGeometry relative="1" as="geometry" />
|
|
54
|
+
</mxCell>
|
|
55
|
+
|
|
56
|
+
<!-- Payment Service → Kafka (right to left) -->
|
|
57
|
+
<mxCell id="22" value="payments" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="5" target="2">
|
|
58
|
+
<mxGeometry relative="1" as="geometry" />
|
|
59
|
+
</mxCell>
|
|
60
|
+
|
|
61
|
+
<!-- Inventory Service → Kafka (bottom up) -->
|
|
62
|
+
<mxCell id="23" value="stock" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="2">
|
|
63
|
+
<mxGeometry relative="1" as="geometry" />
|
|
64
|
+
</mxCell>
|
|
65
|
+
|
|
66
|
+
<!-- Notification Service → Kafka (left to right) -->
|
|
67
|
+
<mxCell id="24" value="alerts" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" edge="1" parent="1" source="7" target="2">
|
|
68
|
+
<mxGeometry relative="1" as="geometry" />
|
|
69
|
+
</mxCell>
|
|
70
|
+
|
|
71
|
+
<!-- Analytics Service → Kafka (left to right) -->
|
|
72
|
+
<mxCell id="25" value="metrics" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" edge="1" parent="1" source="8" target="2">
|
|
73
|
+
<mxGeometry relative="1" as="geometry" />
|
|
74
|
+
</mxCell>
|
|
75
|
+
|
|
76
|
+
</root>
|
|
77
|
+
</mxGraphModel>
|
|
78
|
+
</diagram>
|
|
79
|
+
</mxfile>
|
|
Binary file
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Page-1">
|
|
4
|
+
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" math="0" shadow="0">
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Shape (abstract class) -->
|
|
10
|
+
<mxCell id="2" value="<<abstract>>
Shape" style="swimlane;fontStyle=1;align=center;startSize=40;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="280" y="40" width="200" height="130" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
<mxCell id="3" value="- color: String" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="2">
|
|
14
|
+
<mxGeometry y="40" width="200" height="30" as="geometry" />
|
|
15
|
+
</mxCell>
|
|
16
|
+
<mxCell id="4" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=10;rotatable=0;labelPosition=left;points=[];portConstraint=eastwest;html=1;" vertex="1" parent="2">
|
|
17
|
+
<mxGeometry y="70" width="200" height="10" as="geometry" />
|
|
18
|
+
</mxCell>
|
|
19
|
+
<mxCell id="5" value="+ area(): double
+ perimeter(): double" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="2">
|
|
20
|
+
<mxGeometry y="80" width="200" height="50" as="geometry" />
|
|
21
|
+
</mxCell>
|
|
22
|
+
|
|
23
|
+
<!-- Circle class -->
|
|
24
|
+
<mxCell id="6" value="Circle" style="swimlane;fontStyle=1;align=center;startSize=26;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
25
|
+
<mxGeometry x="80" y="280" width="200" height="130" as="geometry" />
|
|
26
|
+
</mxCell>
|
|
27
|
+
<mxCell id="7" value="- radius: double" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="6">
|
|
28
|
+
<mxGeometry y="26" width="200" height="30" as="geometry" />
|
|
29
|
+
</mxCell>
|
|
30
|
+
<mxCell id="8" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=10;rotatable=0;labelPosition=left;points=[];portConstraint=eastwest;html=1;" vertex="1" parent="6">
|
|
31
|
+
<mxGeometry y="56" width="200" height="10" as="geometry" />
|
|
32
|
+
</mxCell>
|
|
33
|
+
<mxCell id="9" value="+ area(): double
+ perimeter(): double" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="6">
|
|
34
|
+
<mxGeometry y="66" width="200" height="64" as="geometry" />
|
|
35
|
+
</mxCell>
|
|
36
|
+
|
|
37
|
+
<!-- Rectangle class -->
|
|
38
|
+
<mxCell id="10" value="Rectangle" style="swimlane;fontStyle=1;align=center;startSize=26;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
39
|
+
<mxGeometry x="480" y="280" width="200" height="130" as="geometry" />
|
|
40
|
+
</mxCell>
|
|
41
|
+
<mxCell id="11" value="- width: double
- height: double" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="10">
|
|
42
|
+
<mxGeometry y="26" width="200" height="40" as="geometry" />
|
|
43
|
+
</mxCell>
|
|
44
|
+
<mxCell id="12" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=10;rotatable=0;labelPosition=left;points=[];portConstraint=eastwest;html=1;" vertex="1" parent="10">
|
|
45
|
+
<mxGeometry y="66" width="200" height="10" as="geometry" />
|
|
46
|
+
</mxCell>
|
|
47
|
+
<mxCell id="13" value="+ area(): double
+ perimeter(): double" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;html=1;" vertex="1" parent="10">
|
|
48
|
+
<mxGeometry y="76" width="200" height="54" as="geometry" />
|
|
49
|
+
</mxCell>
|
|
50
|
+
|
|
51
|
+
<!-- Inheritance: Circle extends Shape -->
|
|
52
|
+
<mxCell id="14" value="" style="endArrow=block;endFill=0;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="6" target="2">
|
|
53
|
+
<mxGeometry relative="1" as="geometry" />
|
|
54
|
+
</mxCell>
|
|
55
|
+
|
|
56
|
+
<!-- Inheritance: Rectangle extends Shape -->
|
|
57
|
+
<mxCell id="15" value="" style="endArrow=block;endFill=0;edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="10" target="2">
|
|
58
|
+
<mxGeometry relative="1" as="geometry" />
|
|
59
|
+
</mxCell>
|
|
60
|
+
|
|
61
|
+
</root>
|
|
62
|
+
</mxGraphModel>
|
|
63
|
+
</diagram>
|
|
64
|
+
</mxfile>
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="drawio" version="26.0.0">
|
|
3
|
+
<diagram name="Microservices E-Commerce Architecture">
|
|
4
|
+
<mxGraphModel dx="1200" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1200" pageHeight="900" math="0" shadow="0">
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0" />
|
|
7
|
+
<mxCell id="1" parent="0" />
|
|
8
|
+
|
|
9
|
+
<!-- Client Tier -->
|
|
10
|
+
<mxCell id="10" value="Client Tier" style="swimlane;startSize=30;fillColor=#dae8fc;strokeColor=#6c8ebf;rounded=1;html=1;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="100" y="20" width="1000" height="100" as="geometry" />
|
|
12
|
+
</mxCell>
|
|
13
|
+
<mxCell id="11" value="Mobile App" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="10">
|
|
14
|
+
<mxGeometry x="80" y="40" width="140" height="50" as="geometry" />
|
|
15
|
+
</mxCell>
|
|
16
|
+
<mxCell id="12" value="Web App" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="10">
|
|
17
|
+
<mxGeometry x="430" y="40" width="140" height="50" as="geometry" />
|
|
18
|
+
</mxCell>
|
|
19
|
+
<mxCell id="13" value="Admin Panel" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="10">
|
|
20
|
+
<mxGeometry x="780" y="40" width="140" height="50" as="geometry" />
|
|
21
|
+
</mxCell>
|
|
22
|
+
|
|
23
|
+
<!-- API Gateway Tier -->
|
|
24
|
+
<mxCell id="20" value="API Gateway Tier" style="swimlane;startSize=30;fillColor=#ffe6cc;strokeColor=#d79b00;rounded=1;html=1;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
|
25
|
+
<mxGeometry x="100" y="200" width="1000" height="100" as="geometry" />
|
|
26
|
+
</mxCell>
|
|
27
|
+
<mxCell id="21" value="API Gateway
Auth + Rate Limit + Routing" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontSize=12;" vertex="1" parent="20">
|
|
28
|
+
<mxGeometry x="350" y="35" width="300" height="55" as="geometry" />
|
|
29
|
+
</mxCell>
|
|
30
|
+
|
|
31
|
+
<!-- Services Tier -->
|
|
32
|
+
<mxCell id="30" value="Services Tier" style="swimlane;startSize=30;fillColor=#dae8fc;strokeColor=#6c8ebf;rounded=1;html=1;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
|
33
|
+
<mxGeometry x="100" y="380" width="1000" height="100" as="geometry" />
|
|
34
|
+
</mxCell>
|
|
35
|
+
<mxCell id="31" value="Auth Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="30">
|
|
36
|
+
<mxGeometry x="20" y="40" width="140" height="50" as="geometry" />
|
|
37
|
+
</mxCell>
|
|
38
|
+
<mxCell id="32" value="User Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="30">
|
|
39
|
+
<mxGeometry x="210" y="40" width="140" height="50" as="geometry" />
|
|
40
|
+
</mxCell>
|
|
41
|
+
<mxCell id="33" value="Order Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="30">
|
|
42
|
+
<mxGeometry x="430" y="40" width="140" height="50" as="geometry" />
|
|
43
|
+
</mxCell>
|
|
44
|
+
<mxCell id="34" value="Product Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="30">
|
|
45
|
+
<mxGeometry x="620" y="40" width="160" height="50" as="geometry" />
|
|
46
|
+
</mxCell>
|
|
47
|
+
<mxCell id="35" value="Payment Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="30">
|
|
48
|
+
<mxGeometry x="830" y="40" width="150" height="50" as="geometry" />
|
|
49
|
+
</mxCell>
|
|
50
|
+
|
|
51
|
+
<!-- Kafka Message Queue (centered between Services and Data) -->
|
|
52
|
+
<mxCell id="40" value="Kafka Message Queue" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=12;fontStyle=1;" vertex="1" parent="1">
|
|
53
|
+
<mxGeometry x="420" y="560" width="200" height="50" as="geometry" />
|
|
54
|
+
</mxCell>
|
|
55
|
+
|
|
56
|
+
<!-- Notification Service -->
|
|
57
|
+
<mxCell id="41" value="Notification Service" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
58
|
+
<mxGeometry x="760" y="560" width="160" height="50" as="geometry" />
|
|
59
|
+
</mxCell>
|
|
60
|
+
|
|
61
|
+
<!-- Data Tier -->
|
|
62
|
+
<mxCell id="50" value="Data Tier" style="swimlane;startSize=30;fillColor=#d5e8d4;strokeColor=#82b366;rounded=1;html=1;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
|
63
|
+
<mxGeometry x="100" y="690" width="1000" height="120" as="geometry" />
|
|
64
|
+
</mxCell>
|
|
65
|
+
<mxCell id="51" value="User DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="50">
|
|
66
|
+
<mxGeometry x="50" y="35" width="120" height="70" as="geometry" />
|
|
67
|
+
</mxCell>
|
|
68
|
+
<mxCell id="52" value="Order DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="50">
|
|
69
|
+
<mxGeometry x="250" y="35" width="120" height="70" as="geometry" />
|
|
70
|
+
</mxCell>
|
|
71
|
+
<mxCell id="53" value="Product DB" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="50">
|
|
72
|
+
<mxGeometry x="450" y="35" width="120" height="70" as="geometry" />
|
|
73
|
+
</mxCell>
|
|
74
|
+
<mxCell id="54" value="Redis Cache" style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="50">
|
|
75
|
+
<mxGeometry x="680" y="35" width="120" height="70" as="geometry" />
|
|
76
|
+
</mxCell>
|
|
77
|
+
<mxCell id="55" value="Stripe API" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="50">
|
|
78
|
+
<mxGeometry x="860" y="45" width="120" height="50" as="geometry" />
|
|
79
|
+
</mxCell>
|
|
80
|
+
|
|
81
|
+
<!-- Edges: Clients to API Gateway -->
|
|
82
|
+
<mxCell id="60" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="11" target="21">
|
|
83
|
+
<mxGeometry relative="1" as="geometry" />
|
|
84
|
+
</mxCell>
|
|
85
|
+
<mxCell id="61" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="12" target="21">
|
|
86
|
+
<mxGeometry relative="1" as="geometry" />
|
|
87
|
+
</mxCell>
|
|
88
|
+
<mxCell id="62" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="13" target="21">
|
|
89
|
+
<mxGeometry relative="1" as="geometry" />
|
|
90
|
+
</mxCell>
|
|
91
|
+
|
|
92
|
+
<!-- Edges: API Gateway to Services (distributed exit points) -->
|
|
93
|
+
<mxCell id="63" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="21" target="31">
|
|
94
|
+
<mxGeometry relative="1" as="geometry" />
|
|
95
|
+
</mxCell>
|
|
96
|
+
<mxCell id="64" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.3;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="21" target="32">
|
|
97
|
+
<mxGeometry relative="1" as="geometry" />
|
|
98
|
+
</mxCell>
|
|
99
|
+
<mxCell id="65" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="21" target="33">
|
|
100
|
+
<mxGeometry relative="1" as="geometry" />
|
|
101
|
+
</mxCell>
|
|
102
|
+
<mxCell id="66" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.7;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="21" target="34">
|
|
103
|
+
<mxGeometry relative="1" as="geometry" />
|
|
104
|
+
</mxCell>
|
|
105
|
+
<mxCell id="67" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.9;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="21" target="35">
|
|
106
|
+
<mxGeometry relative="1" as="geometry" />
|
|
107
|
+
</mxCell>
|
|
108
|
+
|
|
109
|
+
<!-- Edges: Order Service and Payment Service to Kafka -->
|
|
110
|
+
<mxCell id="70" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="33" target="40">
|
|
111
|
+
<mxGeometry relative="1" as="geometry" />
|
|
112
|
+
</mxCell>
|
|
113
|
+
<mxCell id="71" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="35" target="40">
|
|
114
|
+
<mxGeometry relative="1" as="geometry" />
|
|
115
|
+
</mxCell>
|
|
116
|
+
|
|
117
|
+
<!-- Edge: Kafka to Notification Service -->
|
|
118
|
+
<mxCell id="72" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="40" target="41">
|
|
119
|
+
<mxGeometry relative="1" as="geometry" />
|
|
120
|
+
</mxCell>
|
|
121
|
+
|
|
122
|
+
<!-- Edges: Services to Databases -->
|
|
123
|
+
<!-- User Service to User DB -->
|
|
124
|
+
<mxCell id="80" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="32" target="51">
|
|
125
|
+
<mxGeometry relative="1" as="geometry">
|
|
126
|
+
<Array as="points">
|
|
127
|
+
<mxPoint x="310" y="510" />
|
|
128
|
+
<mxPoint x="210" y="510" />
|
|
129
|
+
</Array>
|
|
130
|
+
</mxGeometry>
|
|
131
|
+
</mxCell>
|
|
132
|
+
<!-- Order Service to Order DB -->
|
|
133
|
+
<mxCell id="81" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="33" target="52">
|
|
134
|
+
<mxGeometry relative="1" as="geometry">
|
|
135
|
+
<Array as="points">
|
|
136
|
+
<mxPoint x="565" y="640" />
|
|
137
|
+
<mxPoint x="410" y="640" />
|
|
138
|
+
</Array>
|
|
139
|
+
</mxGeometry>
|
|
140
|
+
</mxCell>
|
|
141
|
+
<!-- Product Service to Product DB -->
|
|
142
|
+
<mxCell id="82" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="34" target="53">
|
|
143
|
+
<mxGeometry relative="1" as="geometry">
|
|
144
|
+
<Array as="points">
|
|
145
|
+
<mxPoint x="800" y="640" />
|
|
146
|
+
<mxPoint x="610" y="640" />
|
|
147
|
+
</Array>
|
|
148
|
+
</mxGeometry>
|
|
149
|
+
</mxCell>
|
|
150
|
+
<!-- Auth Service to Redis Cache -->
|
|
151
|
+
<mxCell id="83" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="31" target="54">
|
|
152
|
+
<mxGeometry relative="1" as="geometry">
|
|
153
|
+
<Array as="points">
|
|
154
|
+
<mxPoint x="120" y="510" />
|
|
155
|
+
<mxPoint x="120" y="650" />
|
|
156
|
+
<mxPoint x="840" y="650" />
|
|
157
|
+
</Array>
|
|
158
|
+
</mxGeometry>
|
|
159
|
+
</mxCell>
|
|
160
|
+
<!-- Payment Service to Stripe API -->
|
|
161
|
+
<mxCell id="84" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=1;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="35" target="55">
|
|
162
|
+
<mxGeometry relative="1" as="geometry">
|
|
163
|
+
<Array as="points">
|
|
164
|
+
<mxPoint x="1080" y="640" />
|
|
165
|
+
<mxPoint x="1020" y="640" />
|
|
166
|
+
</Array>
|
|
167
|
+
</mxGeometry>
|
|
168
|
+
</mxCell>
|
|
169
|
+
|
|
170
|
+
</root>
|
|
171
|
+
</mxGraphModel>
|
|
172
|
+
</diagram>
|
|
173
|
+
</mxfile>
|
|
Binary file
|