Cloudflare Durable Object SQLite(每频道一实例) · SOCIAL_CHANNEL → SocialChannel(apps/server/wrangler.jsonc) · contexts/social

SocialChannel DO

每频道的消息正文、同步时钟、附件元数据、表情、提及与置顶。

用户资料归 USER_DB;频道目录、成员与未读游标归 SOCIAL_DB;金融状态归外部协议。

7 张表 36 个字段 1 个聚合 1 个迁移 语义层已对齐 · sha256:1bf6b50327e6773a

板块颜色贯穿全文

全库约定

业务流程跟着流程看表怎么变

+ 追加消息(后续处理器契约)

  1. 同 transactionSync 递增 channel_head.version 与 last_seq。
  2. 按新 head 插 messages,message_id 唯一;提交后写回 SOCIAL_DB 频道摘要。

↻ 表情 / 置顶变更(后续处理器契约)

  1. 递增 channel_head.version,将受影响 messages.version 盖成新版本。
  2. 写 message_reactions / channel_pins,替换走 DELETE / INSERT;按 version 增量同步。

设计要点

完整同步契约见 ADR-0235 与 contexts/social/CONTEXT.md。消息恰好已在当前 head 版本时的漏 bump 不能由库独立辨别,后续处理器必须测试。
跨存储一致性DO 与 SOCIAL_DB 不存在原子事务;消息写入后的目录摘要写回由后续处理器负责。