feat: add documentation for cross-domain collaboration and aggregation

- Introduced a new section on cross-domain collaboration and aggregation, detailing decision-making processes, contract module usage for cross-domain reads, and domain events for writes.
- Added guidelines for parallel aggregation using a dedicated thread pool and context propagation.
- Established rules for transaction boundaries, idempotency, optimistic locking, scheduled tasks, and caching strategies in a concurrent environment.
- Included examples and best practices for implementing these concepts in the application.
This commit is contained in:
Guangfei.Zhao
2026-08-14 16:03:47 +08:00
parent 444db49818
commit 74b02ed427
13 changed files with 2688 additions and 474 deletions
+24 -11
View File
@@ -45,20 +45,22 @@ Flutter APP 的分包、分层、技术选型等决策记录,按序号阅读
### backend/
后端(Kotlin + Spring Boot + Gradle)架构决策文档,按序号阅读:
后端(Kotlin 2.4 + Spring Boot 4.1 + Java 21 + Gradle 多模块)架构决策文档,按序号阅读:
| 文档 | 内容 |
| --- | --- |
| [backend/01-project-structure.md](./backend/01-project-structure.md) | 工程结构 / 模块划分(Gradle 多模块,模块化单体) |
| [backend/02-layering.md](./backend/02-layering.md) | 分层规范(api/application/domain/infrastructure |
| [backend/03-persistence.md](./backend/03-persistence.md) | 持久层方案(Spring Data JPA + HibernateFlyway |
| [backend/04-security-auth.md](./backend/04-security-auth.md) | 安全与认证方案Spring Security + JWT门店上下文 |
| [backend/05-integration-layer.md](./backend/05-integration-layer.md) | 集成层设计(F6 Adapter / Mini 客户端) |
| [backend/06-api-design.md](./backend/06-api-design.md) | API 设计规范(统一响应、DTO、版本化 |
| [backend/07-config-governance.md](./backend/07-config-governance.md) | 配置与服务治理(K8s ConfigMap/Secret |
| [backend/08-observability.md](./backend/08-observability.md) | 可观测性(Trace ID、日志、审计) |
| [backend/09-build-deploy.md](./backend/09-build-deploy.md) | 构建与多环境部署(Gradle、Docker、GitLab CI/CD |
| [backend/10-testing.md](./backend/10-testing.md) | 测试策略 |
| [backend/01-project-structure.md](./backend/01-project-structure.md) | 工程结构 / 模块划分(模块化单体`-contract` 契约模块,版本基线 |
| [backend/02-layering.md](./backend/02-layering.md) | 分层规范(api/application/domain/infrastructureEntity 边界 |
| [backend/03-persistence.md](./backend/03-persistence.md) | 持久层方案(Spring Data JPA + Hibernate + MySQLFlyway 多实例 |
| [backend/04-security-auth.md](./backend/04-security-auth.md) | 安全与认证(Spring Security + JWTrefresh 轮换,门店上下文与越权隔离 |
| [backend/05-integration-layer.md](./backend/05-integration-layer.md) | 集成层设计(同步 RestClient + Resilience4jF6 Adapter / Mini 客户端) |
| [backend/06-api-design.md](./backend/06-api-design.md) | API 设计规范(统一响应、错误码、请求头、分页与序列化约定 |
| [backend/07-config-governance.md](./backend/07-config-governance.md) | 配置与服务治理(K8s ConfigMap/Secret、Key Vault、启动期校验 |
| [backend/08-observability.md](./backend/08-observability.md) | 可观测性(Micrometer Tracing、结构化日志与脱敏、指标与告警、审计) |
| [backend/09-build-deploy.md](./backend/09-build-deploy.md) | 构建与多环境部署(Docker、GitLab CI/CD、优雅停机、迁移与回滚协同 |
| [backend/10-testing.md](./backend/10-testing.md) | 测试策略Testcontainers、WireMock、ArchUnit、覆盖率聚合) |
| [backend/11-cross-domain-collaboration.md](./backend/11-cross-domain-collaboration.md) | 跨域协作与聚合(契约模块、领域事件、并行 fan-out 与局部降级) |
| [backend/12-concurrency-and-scheduling.md](./backend/12-concurrency-and-scheduling.md) | 并发、事务与定时任务(事务边界、幂等、乐观锁、ShedLock、本地缓存) |
## 已知文档间差异(PRD 待修订)
@@ -89,6 +91,17 @@ Flutter APP 的分包、分层、技术选型等决策记录,按序号阅读
| **内测分发渠道未定** | [08](./08-build-flavors.md) | Firebase App Distribution 国内可达性存疑,需选替代方案 |
| **车牌识别技术路径未验证** | [07](./07-native-integration.md) | 通用扫码库只能解条码/二维码,VIN 印刷字符和车牌需要 OCR,车牌可能需要商用 SDK |
### 已解决(2026-08 后端文档评审)
| 原待确认项 | 结论 | 出处 |
| --- | --- | --- |
| 数据库选型未定 | **MySQL 8.4**UAT/Prod 用 Azure Database for MySQL Flexible Server + Private Endpoint | [backend/03](./backend/03-persistence.md)、[backend/09](./backend/09-build-deploy.md) |
| `X-Trace-Id` 请求头契约未定 | 客户端传 32 位小写 hex;服务端校验通过则复用,否则忽略并自行生成,最终值在响应头和 `ApiResult.traceId` 里回写 | [backend/08](./backend/08-observability.md)、[05](./05-networking.md) |
| 分页参数约定未定 | `pageNum`1 起)/ `pageSize`(≤100/ `sort`(白名单),响应含 `hasMore` | [backend/06](./backend/06-api-design.md) |
| 集成层同步还是响应式 | **同步 `RestClient`**,不引入 WebClient/Mono | [backend/05](./backend/05-integration-layer.md) |
后端错误码表仍未定(见上表阻塞项):分段规则已在 [backend/06](./backend/06-api-design.md) 定好,缺的是各业务域把自己的码填进去。
## 语言约定
文档以中文为主。