持久化与事件溯源:journal、快照与 CQRS 读模型
事件溯源把系统状态定义为事件序列的折叠结果:写模型只追加不可变事件,读模型由投影派生,命令查询职责分离因此成为它的自然搭档。本文讲清持久化 actor 的命令与事件处理模型、日志与快照如何协作、投影与读模型的构建方式、事件版本演进与兼容策略,并给出恢复性能调优与日常运维的实践要点。
tag
事件溯源把系统状态定义为事件序列的折叠结果:写模型只追加不可变事件,读模型由投影派生,命令查询职责分离因此成为它的自然搭档。本文讲清持久化 actor 的命令与事件处理模型、日志与快照如何协作、投影与读模型的构建方式、事件版本演进与兼容策略,并给出恢复性能调优与日常运维的实践要点。
从 iOS 的安全边界讲起,梳理数据保护等级与 Keychain 的 kSecAttrAccessible 六种策略、SecAccessControl 访问控制、LocalAuthentication 生物识别与 Secure Enclave 密钥存储、App Transport Security 与证书固定、越狱检测与完整性校验,并给出常见的密钥与令牌管理反模式。
本文讲解空间锚点与跨会话持久化机制,回答锚点为什么下次打开就对不上、云锚点该怎么用、世界地图怎么保存与重定位、多用户如何共享同一空间等实战问题。覆盖锚点本质与坐标系、ARCore 锚点体系、ARKit 世界地图、云锚点与跨设备共享、重定位与地图匹配、锚点失效恢复、多用户协同、精度漂移、存储配额,并给出代码、对比表、权衡与常见坑。
本地数据该怎么存、迁移怎么做,是 Android 项目绕不开的工程问题。本文以 Room 2.7 与 KSP 为主线讲本地持久化:实体与数据访问对象建模、流式响应查询、事务与关系映射、类型转换器、数据库迁移与自动迁移的取舍,以及索引唯一约束、加密与预写日志并发。文中给出与 DataStore 的分工对照表,帮你为不同数据选出可维护的持久化方案。
从数据目录与 VOLUME 语义出发,讲解 Postgres、MySQL、Redis 的容器化持久化方案:PGDATA 权限与初始化脚本、mysql_native_password 认证坑、Redis AOF 与 RDB 双持久化,以及命名卷选型、pg_dump/pg_basebackup/mysqldump 备份恢复、WAL 与 fsync 语义、共享内存与存储驱动性能陷阱。
SwiftData 与 Core Data 是 iOS 本地持久化的两条路线。本文从 @Model、ModelContainer、ModelContext、@Query 讲清 SwiftData(iOS 17/18)的声明式模型与 SwiftUI 集成,覆盖关系与级联删除、Schema 迁移 MigrationPlan、@ModelActor 后台并发、Predicate 谓词与批量操作性能;再对比 Core Data 的成熟能力与互操作边界,给出选型结论与迁移失败、上下文线程、N+1 等常见坑清单。
详解 WASM 数据库与持久化:为什么 SQLite 是浏览器数据库首选、sql.js/wa-sqlite/libsql 三库对比、把 SQLite 编成 WASM 的编译选项、OPFS/IndexedDB/私有文件系统三大持久化方案、OPFS 同步访问与导入导出、WASI 下的服务端持久化、离线同步策略与性能基准。
MCP 记忆与持久化工具设计:Agent 记忆的类型(短期/长期/语义/程序性)、记忆工具的模式(写入/检索/删除)、向量记忆与语义检索、结构化的记忆图谱(实体/关系)、跨会话持久化的实现(存储后端/一致性)、记忆的隐私与治理、记忆工具的上下文管理与性能,以及记忆错误(幻觉/过期/冲突)的防护。
深入 Redis 持久化原理:RDB 快照(BGSAVE、Copy-On-Write)、AOF 日志(重写机制、 durability 级别)、混合持久化,以及生产环境选型与灾难恢复策略。