《Java 消息中间件·事件驱动架构》附录 B 架构决策记录模板
五份架构决策记录模板覆盖技术选型、事件契约、一致性、迁移与治理场景,每份含背景、选项对比、结论与验证条件。附纯 JDK 实现的 ADR 完整性校验器,确保决策在代码变更前落盘。
tag
五份架构决策记录模板覆盖技术选型、事件契约、一致性、迁移与治理场景,每份含背景、选项对比、结论与验证条件。附纯 JDK 实现的 ADR 完整性校验器,确保决策在代码变更前落盘。
六十条事件驱动领域术语,覆盖事件基础、Kafka 生态、一致性模型、流处理与治理五个维度,附中英对照、一句话定义与易混词辨析,可作为架构评审的共同语言速查参考。
三卷验收汇总不是检查完就结束了,而是明确知道哪些结论仍依赖真实环境验证。本文用纯 JDK 生成卷一到卷三的能力矩阵与遗留风险清单,给出后续演进方向的三阶段实施路线图、量化验收标准、持续改进闭环机制以及验收的投入产出评估。
故障演练的核心不是出了故障再临时应对,而是在系统正常运转时主动模拟各类故障场景并验证恢复能力。本文给出 broker 挂、消费者挂、投影错、契约破坏四个剧本的完整执行步骤、环境要求、回滚方案与检查清单,用纯 JDK 模拟演练自动化检查器与改进工单生成流程。
事件链路的 SLO 不是拍脑袋定的承诺,而是基于 SLI 的量化约束与可验证的业务承诺。本文用纯 JDK 模拟延迟分布的 p50、p99、p99.9 计算与新鲜度检测,完整展示容量规划与 SLO 联动的四条规则、过载保护的阈值设计与多维度评审机制。
事件驱动架构正式投产前,二十五条评审问题按契约、一致性、运维与成本四个维度排列,每条附重要性说明与可验证的通过标准。本文给出评审会上逐条过章的检查表流程、自动化判定逻辑、常见驳回案例与完整实施路线图,直接支撑上线验收决策与风险前置措施,避免架构带病上线。
单体迁移到事件驱动的最大风险从来不是技术难度而是回滚能力缺失导致出错后无法体面回退。本文用绞杀者模式拆解迁移四阶段,用纯 JDK 完整模拟双写一致性检测、实际回滚窗口验证与回退演练,确保每步迁移都经过验证的可靠退路方案和明确的回退成本评估。
在多业务线共享事件平台的场景下,配额超限策略是保障长期稳定运行的生命线。告警阈值必须早于拒绝阈值,给运维团队留出排查根因的时间窗口。本文用纯 JDK 完整模拟按业务线配额管理器,展示硬配额直接拒绝、软配额告警后放行与延迟到下一窗口处理的三种策略。
Kafka Topic 命名规范与生命周期治理:domain.event.action.vN 格式、CREATING→ACTIVE→DEPRECATED→RETAINED→DELETED 五态机,以及孤儿主题自动清理。Java 模拟命名校验与非法状态转换拦截。
事件平台自助化的本质不是取消审批,而是把命名违规、权限越级等拒绝条件精准前置到成本最低的节点。本文用纯 JDK 完整模拟工单审批状态机,展示技术初审与安全审计的职责分工、拒绝条件列表与每一步产出物,为共建自助化事件平台提供可落地的流程设计与治理体系。
事件血缘必须覆盖字段级而非仅主题级,否则无法精确判断某一个字段被多少个下游消费者消费。本文用纯 JDK、零外部依赖的方式构建最小血缘图,模拟三个生产者、五个主题、八个消费者与十二条血缘边的完整事件拓扑,演示字段级变更后的影响面自动遍历与下游列表生成。
端到端延迟必须分段度量而不能依赖均值。本文用纯 JDK、零外部依赖的方式模拟一千条事件跨越生产、Broker、消费与投影四段的延迟分布,输出各段 p50、p99 与端到端总延迟分位值,揭示并发缓冲与流水线重叠使得端到端延迟不等于各段简单相加的根本原因。
事件链路追踪的核心在于保证 traceId 跨越 topic 边界时不被截断、不被重置。本文用纯 JDK 模拟 TraceContext 在三条消费者间的头传递,输出 span 树、采样一致性校验与链路断裂点标记,验证消息场景下追踪与同步场景的根本差异。
游戏与 IoT 场景在事件驱动架构下面临独特挑战:高频小消息、设备离线与乱序到达,与业务事件的强一致性要求完全不同。本文对比游戏状态同步、IoT 批量上报与业务事件在吞吐量、丢失容忍与顺序要求上的差异与独立配置策略,给出可落地的场景选型建议。
库存类场景的核心矛盾是超卖、预占与释放的并发控制与幂等保证。本文对比库存扣减、预占锁定与释放通知三种事件链路,用纯 JDK 模拟超卖检测与幂等恢复,展示库存事件顺序与幂等边界在真实并发与高并发环境下的完整设计策略、恢复流程与扩展模式选型选择。
libraryd 借阅系统事件流实战:定义 LoanCreated/Renewed/Returned/Overdue 四种领域事件,用内存追加日志模拟 Kafka 分区保序语义,实现投影状态重建、幂等重放验证、按借阅单过滤追踪与事件因果链可视化。
libraryd 借阅系统命令设计实战:定义 BorrowBook/ReturnBook/RenewLoan 三种命令类型,验证构造期参数校验、幂等去重、乐观并发版本控制,以及命令被接受或拒绝的显式结果语义与命令到事件的 1:1 映射规则。
libraryd 借阅系统核心领域模型实战:纯 JDK 实现聚合根 Loan、实体 Book/Member 与值对象 ISBN/LoanPeriod,验证构造校验、不可变性、相等性、不变量约束与乐观并发版本控制机制,涵盖内存仓储查询与值对象等价性,零 Spring 依赖。
一致性不是全局属性,而是由聚合边界、消费者归属和关键程度共同决定的局部属性。本文给出一张判定表和一段可运行的 H2 代码,按「是否跨聚合消费」「是否关键聚合」两维推导每个聚合的一致性级别,输出明确的 STRONG 与 EVENTUAL 判定报告。
Outbox 模式用数据库本地事务保证业务写入与事件的原子性,再由中继可靠投递到 Kafka。本文用 H2 + kafka-clients 写一段可运行的 outbox 演示,故意构造一条不一致记录,展示对账检测、自动重发、幂等标记与至少一次语义的完整流程与本机实测输出。