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:
@@ -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 + Hibernate,Flyway) |
|
||||
| [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/infrastructure,Entity 边界) |
|
||||
| [backend/03-persistence.md](./backend/03-persistence.md) | 持久层方案(Spring Data JPA + Hibernate + MySQL,Flyway 多实例) |
|
||||
| [backend/04-security-auth.md](./backend/04-security-auth.md) | 安全与认证(Spring Security + JWT,refresh 轮换,门店上下文与越权隔离) |
|
||||
| [backend/05-integration-layer.md](./backend/05-integration-layer.md) | 集成层设计(同步 RestClient + Resilience4j,F6 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) 定好,缺的是各业务域把自己的码填进去。
|
||||
|
||||
## 语言约定
|
||||
|
||||
文档以中文为主。
|
||||
|
||||
Reference in New Issue
Block a user