架构设计
PiePLM 采用模块化、分层架构设计,注重可扩展性和可维护性。
系统概览
┌─────────────────────────────────────────────────────────────┐
│ Web UI (React) │
├─────────────────────────────────────────────────────────────┤
│ REST API / gRPC │
├─────────────────────────────────────────────────────────────┤
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────────┐ │
│ │ 需求管理 │ │ 设计管理 │ │ BOM │ │ 变更管理 │ │
│ │ 模块 │ │ 模块 │ │ 模块 │ │ 模块 │ │
│ └──────────┘ └──────────┘ └──────────┘ └────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 核心服务层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────────┐ │
│ │ 搜索引擎 │ │ 认证服务 │ │ 事件总线 │ │ 通知服务 │ │
│ └──────────┘ └──────────┘ └──────────┘ └────────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ 数据层 (PostgreSQL) │
└─────────────────────────────────────────────────────────────┘核心原则
1. 单一二进制
- 纯 Go 实现(无 CGO 依赖)
- PostgreSQL 作为数据存储
- 易于部署和分发
2. 模块化设计
每个领域(需求、设计、BOM、变更)都是自包含的模块,具有:
- 独立的数据模型
- REST/gRPC 接口
- 事件发布
- 扩展点
3. AI 原生集成
- 内置 FTS 全文搜索
- MCP(模型上下文协议)服务器
- LLM 就绪 API
4. 本地优先
- 默认离线工作
- 可选云同步
- 数据所有权属于你
技术栈
| 层级 | 技术 |
|---|---|
| 语言 | Go 1.25+ |
| 数据库 | PostgreSQL |
| 搜索 | PostgreSQL 全文搜索 + 向量嵌入 |
| API | REST + gRPC + MCP |
| Web UI | React + Vite |
| 构建 | Go modules + esbuild |
数据流
- 输入 - CLI、Web UI、API、MCP 工具、文件监听器
- 处理 - 验证、丰富
- 存储 - PostgreSQL(关系型 + 全文搜索)+ 向量
- 索引 - 实时更新搜索索引
- 输出 - 搜索结果、通知、Webhook、AI 代理
扩展点
- 插件 - 通过 Go 插件自定义模块
- Webhooks - 事件驱动集成
- MCP 工具 - AI 代理能力
- 模板 - 文档和工作流模板