<!-- generated-by: gsd-doc-writer -->
# 请求、事务与生命周期

## 从请求到结果

1. 应用的 Web 与安全组件解析请求、会话及操作上下文。身份和授权实现属于安全模块，Core 提供通用上下文和 Web 支撑。
2. Controller 校验参数并委托 Service；统一异常处理与 `ResultBuild` 形成响应。
3. Service 在应用配置的事务边界内组织 Manager。
4. Manager 执行校验、转换、生命周期钩子和持久化操作。
5. 返回结果后，事务管理器完成提交或回滚；需要提交后执行的工作通过对应机制处理。

框架具体钩子的先后顺序以对应操作实现为准。不能把上面的概念顺序作为所有动作的逐行实现。

## 三个容易混淆的时点

| 时点 | 含义 | 不能据此保证 |
| --- | --- | --- |
| 创建 Publisher | 构建响应式流程 | 已读库、已写库、已取得当前请求身份 |
| `afterSave/afterUpdate/afterPhysicsDelete` | 对应 Manager 生命周期进行到该钩子 | 外层事务已提交 |
| 事务提交后 | 当前事务成功结束 | 跨进程消息可靠送达或外部调用必定成功 |

响应式的依赖解析、上下文读取、查询和副作用应发生在订阅期；通过 `Mono.defer`、`Flux.defer` 或已有默认能力组合，不在业务链中调用 `subscribe()` 或 `block()` 来启动另一条流程。测试中的阻塞等待和业务代码中的阻塞调用需区别对待。

异常必须沿调用链传播，才能维持事务回滚和统一错误语义。把错误转换成“成功空结果”可能同时破坏事务、缓存和调用方判断。

## 排查顺序

先确认请求是否进入目标 Controller，再检查操作身份/目标租户、参数、Manager 能力、仓储条件、事务代理，最后检查提交后工作。使用操作追踪信息关联日志，不记录完整 token 或敏感字段。

详见[事务与并发](../guides/transaction-and-concurrency.md)、[租户与上下文](../guides/tenant-and-context.md)、[事件](../guides/integration-events.md)、[删除生命周期](../project-development/delete-hook-and-logging-guide.md)。
