"Event-Driven"
- 表單與事件觸發器
由 Google 檔案事件(表單提交、試算表編輯)觸發的 Apps Script,以及 simple 與 installable 觸發器在權限上的差別
- domain event 與狀態流
為了讓某個畫面刷新而補發事件、或監聽端掛著全事件過濾器時使用。事件記錄離散事實、狀態流發布連續觀測——判準是消費者問「發生了什麼」還是「現在是什麼」;載體借用的代價是涵蓋面靠枚舉維持。
- domain event 與命令、查詢的分界
事件類別以動詞開頭、或事件成對出現 Requested/Provided 帶 correlation id 時使用。事件只承載已發生的事實——命令有唯一處理者與成敗、查詢是一問一答的對話;把意圖或對話裝進事件通道、責任結構會跟著錯位。
- Domain Event
系統裡出現「為了讓某頁刷新而補發事件」或「監聽端掛全事件過濾器」時使用。domain event 是已發生的業務事實——過去式命名、發布後不可變、錯過代表事實遺失。
- DynamoDB Streams 與 Lambda 事件驅動:CDC、shard 順序保證、消費模式與失敗處理
DynamoDB Streams 不是免費的可靠事件流;本文展開 stream record 的四種 view type、shard 對應 partition 的順序保證邊界、Lambda event source mapping vs Kinesis 消費模式、at-least-once 下游冪等需求,以及 batch 失敗時的 bisect / DLQ 處理
- BookImported 不能寫成 ImportBook — 事件命名的過去式是語意類別、不是風格
domain event 用過去式命名(BookImported)因為事件是已發生的事實;動詞開頭(ImportBook)是命令的形狀、訂閱者會誤讀成指令。字尾清單的自動檢查抓不住不規則動詞——偵測可機械化、判定要看語意。附一次版本終止:工作日誌宣稱的命名問題實際早已不存在、執行前驗前提省下整輪流程。
- 用事件做同步查詢、等於手工重建 RPC — 跨 domain 解耦的完整帳單
domain 直接查另一個 domain 的 repository 違反依賴方向;改事件驅動的 request/response 解了耦、但帳單具體:correlation id 配對並發、timeout 機制、三條錯誤路徑——都是同步呼叫免費附贈的東西。判準是需要解耦「依賴方向」還是「時間與部署」:前者用消費端 Port 就夠、後者才值得付事件的價。