会话是错误的边界
聊天应用通常将交互的寿命作为任务寿命. 当标签关闭时,活动推理停止. 当上下文被截断时,早期的决定会消失。
LibreTask将任务与界面区分开来. 任务线程具有持久的生命周期. 工作流程可以在一个人离开时暂停,然后在决定到来时恢复。
记录事件,然后生成状态
该系统将有意义的行动记录为已订购的事件:修改契约、生成计划、援引能力、评价失败、作出人的决定或交付。
目前的状态是从这个序列重建而来. 这对复苏有用,但也回答了一个更重要的产品问题:为什么系统走这条道路?
重试就是决定
盲倒可以重复外部副作用,或者消耗预算而不改进结果. 受治理的系统应当知道哪些能力失效,故障是否是暂时的,适用何种复试政策,以及是否有替代品。
误差键、特定能力的超时和结构化出错类型将回收从一般循环变为可解释的更正。
等待是执行的一部分
人类审查可能需要几分钟或几天的时间。 持久的工作流程应该停止扣押活工,并维持其等候状态。 信号到来后,执行从此继续进行。
这是可以过夜运行的系统与只说它会运行的系统之间的实际区别。