---
title: LinkRSP (韧链) 技术栈与长期演进策略
version: v1.0（文稿）
status: 方向性约束（非即时实施清单）
---

# LinkRSP (韧链) 技术栈与长期演进策略 v1.0

> **项目代号**：linkrsp（LinkRSP / 韧链）。本文档描述**方向性**技术选择与**防技术债**原则；具体框架以立项时的团队能力与法域要求为准。  
> **交叉引用**：[工程架构 v0.1](architecture-v0.1.md) · [核心算法规格 v1.0](../spec/linkrsp-core-algorithm-spec-v1.0.md) · [可行性评估](../reports/feasibility-assessment-v1.0-alpha.md) · [威胁模型范围 v1.0](../security/threat-model-scope-v1.0.md) · [申诉与公开记录](../governance/appeals-and-public-record.md) · [版本策略](../governance/versioning-policy.md)

---

## 1. 目标与非目标

| 目标 | 非目标 |
|------|--------|
| 可审计、可回放、可归因（积分与规则判定） | 绑定单一云厂商或单一 LLM 供应商 |
| 与 HDGP 生态 **适配器化** 集成 | 在应用层复制完整 HDGP Engine 逻辑 |
| 移动弱网、高龄友好（V=2 UX） | 过早微服务拆分导致运维债 |
| 规范驱动（OpenAPI / 事件 schema 优先） | 「先写代码再补文档」 |

---

## 2. 分层建议（逻辑—实现解耦）

```
[ 客户端 / BLE / 定位 ] → [ API 网关 + 认证 ]
       → [ 领域服务：身份、社区、任务、存证、LRS 分录 ]
       → [ 策略适配层：Rule Engine / HDGP HTTP 或 gRPC ]
       → [ 异步：语义审计队列 + LLM Worker（可插拔）]
       → [ 只追加存储：审计日志 / 证据对象索引 ]
```

**原则**：领域规则（Clip、创世期开关、Harness 触发条件）落在**可版本化的策略模块 + 纯函数单测**；禁止散落在 UI 或数据库触发器内。

---

## 3. 后端语言锁定：**Go**

**决议（v1.0 策略）**：LinkRSP **核心后端服务**采用 **Go**。

| 考量 | 说明 |
|------|------|
| **与 HDGP Engine 对齐** | 常见 HDGP 可运行 Engine 为 **Go**；同栈降低 **HTTP/gRPC 适配、调试、运维与贡献者上手成本**。 |
| **Rust** | 性能与内存安全有优势，但与 Go 引擎并存会带来 **跨语言 FFI/重复类型定义/双套发布流水线**；在团队对 Rust 不熟悉时，**贡献面摩擦**高于收益。Rust **不作为**当前核心服务默认选项；若未来存在极高性能热点，可**局部**以库或服务形式引入，而非整体栈分叉。 |
| **TypeScript / Node** | 仅适合外围 BFF、管理台或原型；**积分热路径**仍应以 Go（或经评估的强类型静态语言）承载，且须**确定性单测**。 |

---

## 4. 推荐技术栈（其余层；接口可替换）

以下为一组**低锁定**默认；保持**接口契约**不变即可换实现。

| 层级 | 推荐选项 | 防技术债要点 |
|------|-----------|----------------|
| **语言（后端核心）** | **Go**（已锁定，见 §3） | 领域规则与分录逻辑以**纯函数 + 单测**为主；禁止把账务写进 DB 触发器 |
| **HTTP API** | REST + **OpenAPI 3** 单一事实来源；可选 gRPC 对内 | 先写契约再生成客户端；**API 版本**遵守版本策略（未达上线标准前对外 **≤ v1.0**） |
| **关系库** | **PostgreSQL** | 业务表 + **append-only 事件表**（积分分录建议事件溯源或等价不可变行）；避免用触发器写业务规则 |
| **缓存 / 队列** | **Redis**（缓存、速率限制、简易队列）或 **NATS / RabbitMQ**（明确投递语义） | LLM 任务必须 **幂等键**（任务/内容哈希/规则版本） |
| **移动客户端** | **原生**（Kotlin / Swift）优先保障 BLE 与系统权限；跨端可用 Flutter + 平台通道 | BLE 与定位属关键路径，避免「为了统一 UI 牺牲核验可靠性」 |
| **对象存储** | S3 兼容（MinIO / 云厂商） | 存证包、审计归档；**默认加密**与生命周期策略 |
| **可观测性** | **OpenTelemetry** + 结构化日志 | 任一拦截/熔断须带 **trace_id、规则包版本、策略 verdict** |
| **策略与规则** | HDGP Engine **HTTP 适配器**；规则包 **版本号 + 签名**（若上游提供） | **不** fork 上游规则语义到本仓库隐式逻辑；对齐 [`../parent-hdgp.md`](../parent-hdgp.md) 边界 |
| **LLM** | 抽象 **Provider 接口**（OpenAI/本地/vLLM） | 提示词与 **S 类规则**版本化；批处理 + 灰区队列（可行性评估 §5.3） |

---

## 5. 长期演进（避免未来重构爆炸）

1. **事件优先**：积分与审计以 **append-only 事件** 为真相源；读模型可投影，避免「直接 UPDATE 积分余额」难以追溯。  
2. **双轨发布**：**领域模型**与 **适配 HDGP 的防腐层**分离，避免引擎 API 变更拖垮核心表结构。  
3. **密钥与隐私**：证据包加密密钥轮换策略在设计阶段预留；默认**最小化**采集与留存。  
4. **多区域 / 合规**：接口层预留租户与数据驻留字段，即使 MVP 单区域也不把「区域 ID」写死在表主键策略外。  
5. **规则与算法版本**：`K_global` 创世开关、Clip 阈值等走 **配置中心或版本化策略包**，与代码发布解耦。  
6. **测试金字塔**：R 类规则 **100% 单测覆盖**；对接 HDGP 的契约测试 **录播 + 回放**；端到端仅保留关键路径。

---

## 6. 刻意不选（常见技术债来源）

- 在核心账务路径使用**无模式**文档库作为主真相源（可辅助检索，不当唯一账本）。  
- 将 **LLM 输出** 直接写回积分余额而不经规则引擎与审计事件。  
- **隐式多租户**（字符串拼 SQL）导致后续无法合规分库。  
- **未版本化**的 Prompt / 规则 JSON 散落在各服务环境变量中。

---

## 7. 与 HDGP-Core 的关系

伦理与 Meta 语义以 [HDGP-Core](https://github.com/HumanDignityGuardian/HDGP-Core) 为公开对照；**运行态 Engine** 通过 **稳定 HTTP/gRPC 契约**接入，见 [`../parent-hdgp.md`](../parent-hdgp.md)。许可证层面：本仓库当前 **MIT** 与 Core **Apache-2.0** 可共存于依赖边界；若合并分发再评估合规清单。

---

*维护：随架构 v0.1 收敛为可执行基线后，可拆出 `integrations/openapi` 等子目录；本文档仍为 v1.0 方向约束。*
