我正在爲即將到來的一組模式創建一個新的事件和流處理系統,我們正在我的公司構建幾個當前斷開的系統。我們已經明確定義了12個領域模型,並且正在嘗試將所有應用程序將事件推出到匯合(kafka)平臺的一組事件模式。然後,這些將由samza提取和處理,以執行各種作業,然後填充我們的特定於域的服務的數據庫。事件流數據模型
這一切都很好,我們從每個域的一個事件(例如地址)開始。但是,我們很快就遇到了不同類型事件需要不同數據的問題。例如,創建地址的事件需要域中的所有(或大部分)字段。而更新只需要一個id和正在更新的內容。
那麼,我在尋找的是那些過去做過這些的人的一些建議嗎?理想情況下,我希望每個域只有一個事件模式保持清潔。這樣我們就有一個相應的卡夫卡隊列,每個事件可以很容易地重播以重新獲得狀態或返回到特定的先前狀態。然而,這感覺就像是更簡單和更務實的方法是使用一個單獨的模式爲每個動詞(即創建,更新,刪除)
一些相關的堆棧細節:
匯合REST代理 - > Avro公司 - > kafka - > samza - >各種dbs。