iT邦幫忙

鐵人檔案

2024 iThome 鐵人賽
回列表
Software Development

Datomic,內建事件溯源的資料庫。 系列

有一回,我看到某位在教 DDD (domain-driven design) 的老師寫到類似的內容,他開的事件溯源的課程,學員上完課之後,跟他表示,「老師,這個事件溯源,好像不知道要如何應用?」

類似的故事還有其它的,我曾經在某社服務過,也曾問過那邊的同事,他們是否曾經應用過事件溯源 (event sourcing) 。我的同事回答:「有,但是那個專案後來慘敗,還有人生氣就把工作辭了。」

奇怪,怎麼「事件溯源」我用起來就好好的,一點困難也沒有?

大家可能以為我要告訴你們,我是什麼 10x 工程師,不是,我是跟大家講,我的秘訣是直接使用一個內建事件溯源的資料庫:Datomic

參賽天數 25 天 | 共 25 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文
DAY 21

阻抗不匹配與 Datomic 的解決方案

在 day 4 的時候,我們談到了阻抗不匹配問題,並且提到了阻抗不匹配常見的兩個形式: N+1 查詢造成大量 I/O,拖慢效能。 N+1 查詢可能因為查詢之間...

2024-09-09 ‧ 由 Laurence Chen 分享
DAY 22

as-of 查詢

先來解說圖: 綠色的圓圈部分:代表「改變資料庫狀態的事件」,是一個又一個資料原子 (Datom)。資料原子是用 E/A/V/T/op 的形式記著真實世界的資...

2024-09-10 ‧ 由 Laurence Chen 分享
DAY 23

欄位綱要 (column schema)

Datomic 的 schema 比 SQL 資料庫靈活得多,這邊從三個不同的面向來探討靈活性: 不需要 NULL 值 共用欄位綱要 不需要使用橋接表 (b...

2024-09-11 ‧ 由 Laurence Chen 分享
DAY 24

Datomic 的寫入

在開始之前,我們要再做一些詞彙的釐清: 在 Datomic 的官方文件裡,對資料庫寫入稱之為交易 (transaction)。 在 Datomic 的官方文件...

2024-09-12 ‧ 由 Laurence Chen 分享
DAY 25

主鍵 (primary key) 與資料實體編碼 (entity id)

不知道大家有沒有跟我一樣,曾經為了該如何設計 SQL 資料表的主鍵 (primary key) 而困擾不已? 每次遇到這種問題,第一個要考慮的就是: 要用自然...

2024-09-13 ‧ 由 Laurence Chen 分享