# 命令、事件与一致性

本域事务、跨域事件、派生视图和外部副作用分别处理；不承诺全局恰好执行一次，而是让重复、延迟和乱序都不会造成错误结果。

> Document ID: MYRILUM-DOC-ARCH-024
> Document type: concept
> Product: NOT_APPLICABLE
> Version: 0.1.0
> Region: GLOBAL
> Visibility: PUBLIC
> Publication: PUBLISHED_GLOBAL
> Content maturity: DRAFTED
> Governance: APPROVED
> Capability state: IN_DEVELOPMENT
> Availability: NOT_AVAILABLE
> Authorization: PUBLIC_INFORMATION
> Freshness: CURRENT
> Safety class: INFORMATIONAL
> Owner: Web3Capital Documentation Steward
> Approvers (assignment only; not approval evidence): Stephen
> Canonical authority: SRC-ARCHITECTURE-ATLAS-V2-2
> Source commit: 6b41cce4496de03c67a501aa94cd41ec6ac0e85a
> Content digest: 2177c4d680c09b6236bfe5fa83d791ac7ef88b60094a0dabe5eff55a5f1d69cb
> Effective: NOT_SET
> Expires: NOT_SET
> Last verified: 2026-09-23
> Review due: 2026-10-23
> Command authority: NONE
> Canonical URL: /zh-cn/architecture/commands-and-events

<a id="overview"></a>

## 这一页说什么

这是 MYRILUM 的目标架构设计，不代表图中各项都已上线；某项能力现在能不能用，以《当前可用情况》为准。

一次正式操作、一次执行尝试、一次网络请求和一个事件，各有各的含义与标识。本页只讲原则，实现细节不公开。

<a id="one-owner"></a>

## 每个正式对象只有一个归属

一项业务事实只由负责它的领域写入。其他领域通过事件得知变化，可以据此更新自己的状态或派生视图，但不能改写不归自己管的事实。

<a id="state-and-event-together"></a>

## 状态和事件一起提交

一次正式操作先检查权限、对象状态和前置条件，再把业务状态的变化和要发出的事件在同一次提交里记下，之后才可靠地发出去。这样既不会「状态改了、消息丢了」，也不会「消息发了、状态没改」。

<a id="duplicates-are-normal"></a>

## 重复、延迟与乱序是常态

事件至少送达一次，可能重复、晚到或乱序。接收方按事件标识和业务唯一键去重，并核对对象版本，旧版本不会覆盖新状态。

<a id="views-are-derived"></a>

## 视图是派生的，关键操作回到正式记录

首页、工作台、统计和搜索都是派生视图，可以暂时滞后，但要标明更新时间，不能冒充实时事实。执行重要操作之前，系统回到正式记录重新检查状态和权限。

<a id="replay-is-not-repeat"></a>

## 重放不等于重做

重建视图时可以按版本重放事件，但付款、发布这类外部动作绝不会因为重放再做一次。失败的处理有次数上限，处理不了的放到一边等人来看；跨领域的长流程靠状态协调和对账收尾，不假装是一个统一事务。事件只带必要的引用，不携带密钥或客户正文。

<a id="source"></a>

## 出处

本页依据《MYRILUM 全架构图谱》v2.2 的 A24。按公开边界，这一页只公开原则，不放图。相关：《业务领域与事实权威映射》、《跨对象状态机与异常路径》、《版本、成熟度与路线图》。

---

This document is read-only, grants no command authority, and does not authorize deployment, payment, provider modification, or any other real-world action.
