Thursday, June 29, 2023

background job queue library of Clojure

先談簡易的結論:
1. 想搭配 Postgres 使用 => 用 Proletarian
2. 想搭配 Redis 使用 => 用 Jesque 
3. 都不滿意的話,就再去 Java 的 ecosystem 找,總會找到勉強可以接受的 library 來用。


其實這個問題也滿多人討論的:
比方說,這一篇:有人在 ClojureVerse 詢問,在 Clojure 世界裡,相當於 Ruby 的 sidekiq 是什麼?


< 技術決策的理論 >

如果是我來思考這個議題的話,兩個重點:

1. Deployment 是否省事?
2. Library 提供給我的 interface 是否好用?直覺?不會太多儀式性的 code 要寫

DevOps 要省事的話,常常會不想用 Redis 。可以參考這一篇


由於使用 Redis 做為 durable storage 的 library 疑似發展比較久、也比較成熟,有可能反而是 Redis 組別的 Library interface 比較好用。類似的觀點來自這邊


< 技術決策的實務 >

Proletarian 與 Jesque 我都用過,library 給的感覺嘛,好像也沒有差很多。大概還是優先選 Proletarian ,畢竟我本人很怕 Deploy 那一段的 complexity。