vibe-coding-cn/assets/workflow/canvas-dev/examples/demo-project.canvas

282 lines
5.9 KiB
Plaintext

{
"nodes": [
{
"id": "title",
"type": "text",
"x": -100,
"y": -350,
"width": 400,
"height": 60,
"text": "# 📦 电商系统架构白板\n\n演示项目 - 用户、商品、订单管理"
},
{
"id": "group-frontend",
"type": "group",
"x": -600,
"y": -250,
"width": 250,
"height": 500,
"label": "🖥️ 前端"
},
{
"id": "group-api",
"type": "group",
"x": -300,
"y": -250,
"width": 250,
"height": 500,
"label": "🌐 API网关"
},
{
"id": "group-service",
"type": "group",
"x": 0,
"y": -250,
"width": 300,
"height": 500,
"label": "⚙️ 业务服务"
},
{
"id": "group-infra",
"type": "group",
"x": 350,
"y": -250,
"width": 300,
"height": 500,
"label": "🔧 基础设施"
},
{
"id": "fe-web",
"type": "text",
"x": -580,
"y": -200,
"width": 210,
"height": 80,
"text": "# Web App\n\nReact + TypeScript"
},
{
"id": "fe-mobile",
"type": "text",
"x": -580,
"y": -100,
"width": 210,
"height": 80,
"text": "# Mobile App\n\nReact Native"
},
{
"id": "api-gateway",
"type": "text",
"x": -280,
"y": -200,
"width": 210,
"height": 100,
"text": "# API Gateway\n\n- 路由分发\n- 认证鉴权\n- 限流熔断"
},
{
"id": "svc-user",
"type": "text",
"x": 20,
"y": -200,
"width": 260,
"height": 100,
"text": "# UserService\n\n- 用户注册/登录\n- 个人信息管理\n- 权限校验"
},
{
"id": "svc-product",
"type": "text",
"x": 20,
"y": -80,
"width": 260,
"height": 100,
"text": "# ProductService\n\n- 商品CRUD\n- 库存管理\n- 分类搜索"
},
{
"id": "svc-order",
"type": "text",
"x": 20,
"y": 40,
"width": 260,
"height": 100,
"text": "# OrderService\n\n- 下单流程\n- 订单状态机\n- 退款处理"
},
{
"id": "svc-payment",
"type": "text",
"x": 20,
"y": 160,
"width": 260,
"height": 80,
"text": "# PaymentService\n\n- 支付网关对接\n- 账单管理"
},
{
"id": "infra-db",
"type": "text",
"x": 370,
"y": -200,
"width": 260,
"height": 80,
"text": "# PostgreSQL\n\n主数据库",
"color": "4"
},
{
"id": "infra-cache",
"type": "text",
"x": 370,
"y": -100,
"width": 260,
"height": 80,
"text": "# Redis\n\n缓存 + 会话",
"color": "1"
},
{
"id": "infra-mq",
"type": "text",
"x": 370,
"y": 0,
"width": 260,
"height": 80,
"text": "# RabbitMQ\n\n异步消息队列",
"color": "2"
},
{
"id": "infra-es",
"type": "text",
"x": 370,
"y": 100,
"width": 260,
"height": 80,
"text": "# Elasticsearch\n\n商品搜索引擎",
"color": "5"
},
{
"id": "external-stripe",
"type": "text",
"x": 370,
"y": 200,
"width": 260,
"height": 60,
"text": "# Stripe API\n\n外部支付服务",
"color": "6"
}
],
"edges": [
{
"id": "e-web-gw",
"fromNode": "fe-web",
"toNode": "api-gateway",
"fromSide": "right",
"toSide": "left",
"label": "HTTP"
},
{
"id": "e-mobile-gw",
"fromNode": "fe-mobile",
"toNode": "api-gateway",
"fromSide": "right",
"toSide": "left",
"label": "HTTP"
},
{
"id": "e-gw-user",
"fromNode": "api-gateway",
"toNode": "svc-user",
"fromSide": "right",
"toSide": "left",
"label": "/users/*"
},
{
"id": "e-gw-product",
"fromNode": "api-gateway",
"toNode": "svc-product",
"fromSide": "right",
"toSide": "left",
"label": "/products/*"
},
{
"id": "e-gw-order",
"fromNode": "api-gateway",
"toNode": "svc-order",
"fromSide": "right",
"toSide": "left",
"label": "/orders/*"
},
{
"id": "e-order-user",
"fromNode": "svc-order",
"toNode": "svc-user",
"fromSide": "top",
"toSide": "bottom",
"label": "校验用户"
},
{
"id": "e-order-product",
"fromNode": "svc-order",
"toNode": "svc-product",
"fromSide": "top",
"toSide": "bottom",
"label": "扣减库存"
},
{
"id": "e-order-payment",
"fromNode": "svc-order",
"toNode": "svc-payment",
"fromSide": "bottom",
"toSide": "top",
"label": "发起支付"
},
{
"id": "e-user-db",
"fromNode": "svc-user",
"toNode": "infra-db",
"fromSide": "right",
"toSide": "left"
},
{
"id": "e-product-db",
"fromNode": "svc-product",
"toNode": "infra-db",
"fromSide": "right",
"toSide": "left"
},
{
"id": "e-order-db",
"fromNode": "svc-order",
"toNode": "infra-db",
"fromSide": "right",
"toSide": "left"
},
{
"id": "e-user-cache",
"fromNode": "svc-user",
"toNode": "infra-cache",
"fromSide": "right",
"toSide": "left",
"label": "会话"
},
{
"id": "e-product-es",
"fromNode": "svc-product",
"toNode": "infra-es",
"fromSide": "right",
"toSide": "left",
"label": "搜索"
},
{
"id": "e-order-mq",
"fromNode": "svc-order",
"toNode": "infra-mq",
"fromSide": "right",
"toSide": "left",
"label": "订单事件"
},
{
"id": "e-payment-stripe",
"fromNode": "svc-payment",
"toNode": "external-stripe",
"fromSide": "right",
"toSide": "left",
"label": "支付请求"
}
]
}