"Persistence"
- 離線 buffer 與重試
網路不可用時的事件保存策略 — FIFO 丟棄、本地 persistence、恢復後補發的取捨
- Redis 持久化與 fork latency:AOF、RDB 與那一次卡住整個 cluster 的 fork
Redis 的 RDB save 與 AOF rewrite 都靠一次 fork(),而 fork 在大記憶體實例上會凍結主執行緒數百毫秒、複製分頁讓記憶體逼近翻倍。本文展開 AOF / RDB 的機制與 fsync 取捨、copy-on-write 的記憶體放大、5 個把持久化寫成延遲尖峰與資料遺失的 production 踩坑,以及 cache 場景到底要不要持久化的邊界
- 功能「完成」、測試全過、資料從未落地 — 持久化迴圈是驗收的盲區
domain 功能的測試可以全綠、而它的資料從未被序列化、資料庫沒有對應的表——單元測試都在記憶體內驗證行為、沒有一條測試走「存進去、重建、讀出來」的迴圈。驗收定義要含 roundtrip;entity 欄位與 schema 欄位的差集是靜默資料失真的清單。