阅读时间:1 分钟
0 字
技术选型
技术选型按“首期必需、负载触发后引入”分层,避免在业务闭环验证前维护过多基础设施。
已选首期方案
| 领域 | 推荐方案 | 理由 |
|---|---|---|
| 管理端框架 | React + TypeScript | 构建页面和类型化业务组件。 |
| 样式系统 | Tailwind CSS | 提供样式工具类与主题变量映射。 |
| 通用组件 | shadcn/ui | 按需引入并维护按钮、表单、弹窗等组件源码。 |
| 交互基元 | Radix UI | 管理端选用 shadcn/ui 的 Radix 版本;相关组件提供键盘、焦点与弹层等底层行为。 |
| 文档站 | VitePress 1.x | 当前已经运行,Markdown 驱动,构建简单。 |
| 后端 | Java 21 + Spring Boot | 适合企业集成、事务、服务治理和长期运行的核心服务。 |
| 构建 | Maven Wrapper | 统一 Java 构建版本并便于 CI。 |
| 主数据库 | PostgreSQL | 事务、约束、JSONB、索引和扩展能力覆盖核心元数据与状态。 |
| 对象存储 | S3 兼容接口 | 保存不可变快照、大型证据和导出物。 |
| 契约 | OpenAPI + JSON Schema + AsyncAPI 风格事件 Schema | 支持代码生成、兼容性检查和多协议复用。 |
| 可观测 | OpenTelemetry + Prometheus + Grafana | 统一追踪、指标与可视化。 |
Node.js 适合前端构建和轻量协议适配,但核心 Runtime、Action 事务和连接器治理需要更强的类型、并发、事务与企业集成能力,因此采用 Java。Python 适合算法、数据科学和离线任务,可作为 Function Worker 或扩展运行时,不作为核心控制面主语言。
管理端各层的职责
| 层次 | 内容 | 放置位置(计划) |
|---|---|---|
| 页面与业务组件 | React 页面、本体建模器、关系图、审批面板;用 TypeScript 定义 Props、状态和交互。 | apps/ontology-console/src/pages/、src/features/ |
| 通用组件 | 从 shadcn/ui 按需引入的组件源码;选用 Radix UI 版本。 | apps/ontology-console/src/shared/components/ui/ |
| 设计令牌与样式 | 以 shadcn/ui 主题变量为起点,用 Tailwind CSS引用;增补草稿、发布、审批、风险等业务状态及明暗主题。 | apps/ontology-console/src/shared/styles/ |
| 前后端数据契约 | 请求、响应和错误结构由 OpenAPI/Schema 定义,再生成前端类型与客户端。 | 根目录 contracts/ → src/shared/api/ |
设计令牌是视觉约定,组件契约是 Props、状态与行为约定;两者都不放入跨服务 contracts/。多个前端应用需要复用时,再考虑抽出独立的令牌或 UI 包。
状态:选型已确认,尚未实施。 apps/ontology-console/ 目前只有目录骨架,没有安装 React、Tailwind CSS、shadcn/ui 或 Radix UI。
初始化时应按照 shadcn/ui Vite 指南创建应用,并用 -b radix 明确选择 Radix 基座。官方 --monorepo 模板会另外创建 apps/web 和 packages/ui;本仓库已有目录结构,按现有 apps/ontology-console/ 集成。
按需引入
| 组件 | 触发条件 |
|---|---|
| Redis | 模型、策略或热点结果缓存收益经过测量,且失效策略明确。 |
| Kafka + Debezium | 需要持续 CDC、事件重放、多消费者或高吞吐异步处理。 |
| Temporal | 审批等待、长流程、复杂重试和补偿超出数据库任务表可维护范围。 |
| ClickHouse | 审计和用量分析规模使 PostgreSQL 成本或延迟不可接受。 |
| Trino | 大规模跨源分析成为主要负载,简单适配器执行不能满足。 |
| OpenFGA | ReBAC 关系规模和查询复杂度需要专用授权引擎。 |
| OPA | ABAC 与环境策略需要集中表达和独立发布。 |
| Keycloak | 需要统一 OIDC、企业身份联邦和服务账户管理。 |
| 图数据库 | 多跳路径和图算法有明确规模、延迟与运维收益。 |
首期不做
- 不自研通用分布式 SQL 引擎。
- 不把所有实体同步到图数据库。
- 不同时部署全部可选中间件。
- 不允许 Runtime 执行调用方提供的任意 SQL。
- 不以共享数据库表替代服务契约。
选型复核门槛
引入新基础设施前需要记录负载、当前瓶颈、预期收益、数据迁移、故障模式、监控、备份、团队维护成本和退出方案。长期架构决策写入 docs/adr/,本页只保留当前推荐结果。