事件驱动(Event-Driven) 协议
别名:
事件驱动分层
以事件流为中间产物的架构机制:core 发出结构化事件,传输与界面层只负责消费与转发,事件本身可序列化、可存储、可回放。见[第 15 章](/chapters/15-service-v02-events/)。
它是什么
事件驱动(Event-Driven)分层是以事件流为中间产物的架构机制:core 发出结构化事件,传输与界面层只负责消费与转发,事件本身可序列化、可存储、可回放。它与「函数调用链」式架构的区别在于解耦:生产者不知道谁在听,消费者不需要改生产者——loop 发事件、缓冲广播、CLI 打印 / SSE 推送 / 未来存储,互不越位。
在本教程的位置
第 15 章把它落在产品上:loop.mjs 的 emit 统一盖章发事件({ sessionId, ...event }),events.mjs 的会话缓冲做回放 + 实时分发(events() 补历史、subscribe() 推实时),server.mjs 把缓冲里的 tool_call_start / tool_result / text_delta / done 原样 encodeSse 转发。这个机制为后续章节打底:ch16 断线恢复在事件上加序号、ch17 Web 前端消费事件流渲染、ch18 审批事件走同一通道。
与事件溯源的区别
事件驱动是「架构风格」(用事件通信),事件溯源(event-sourcing)是「持久化模式」(用事件日志重建状态)——本教程 ch10 的持久层存事件是为了回放对话,与这里的协议层是两回事,别混。