Read compatibility 的核心概念是「讀取路徑在過渡期同時理解新舊資料語意」。它連接 Expand / Contractschema migrationfallback,讓新欄位或新資料模型可以先進入 production,再逐步切換讀取權。

概念位置

Read compatibility 位在 dual writecutover / switchovermigration gate 之間。雙寫處理寫入一致性,read compatibility 處理讀取方如何在缺值、延遲回填或版本混跑時仍能給出一致判讀。

可觀察訊號

系統需要 read compatibility 的訊號是:

  • 新欄位已新增,但歷史資料尚未全部 backfill
  • 新舊程式版本會同時服務流量
  • rollback 後舊版本仍需要讀懂 production 資料
  • 內部後台、對帳或報表的切換節奏不同於使用者可見路徑

接近真實網路服務的例子

訂單服務新增 payment_state 後,讀取時可先看新欄位,缺值時回到舊 status 的付款語意。客服後台可以先用這條相容讀取路徑驗證資料,再逐步讓使用者可見查詢改用新欄位。

設計責任

Read compatibility 要定義讀取優先順序、fallback read 條件、資料新鮮度限制與停止條件。它要搭配 validation queryrollback strategy,避免 cutover 後才發現舊版本或長尾讀取路徑無法判讀資料。