weblab-tw / ddia-study-group

Designing Data-Intensive Applications Study Group
36 stars 5 forks source link

第五章節:hardcore 實作 - Jimmy #60

Open JimmyFUFU opened 2 years ago

JimmyFUFU commented 2 years ago

現有的資料庫跟工具應該都有使用各自的策略,像是 mysql 的主從或是 circular replication 等等,那有沒有人曾經在某個 usecase 因為這些不想用這些工具或是情境限制而需要自己 hardcore 出這些策略?

我自己最接近的經驗(不知道算不算)聽起來很簡單,我覺得有點像單主,反正就是 application 只拿 redis 資料,然後會有固定的 worker 去更新 redis(避免過期或是 redis 掛掉),DB 有更新的時候也會去同步資料到 redis

咁聽起來好廢QQ

Parkerhiphop commented 2 years ago

Edward:一開始先寫在 ES,Application 把它丟到 Redis,再打到 DB,沒有很即時的方式。

KK:用 Postgress 的 trigger,設定 on 的情境觸發 trigger 並執行某些 SQL,讓使用者去拿資料,但 trigger 本身一定會有延遲,但這延遲可控就還可以接受。 不過把 Business logic 幹在 DB Layer 可能就不太行。

DDD 就是商業邏輯寫在 Use Case 上最好 aka 寫在 application。