簡體   English   中英

有哪些流行的框架可用於實現 CQRS、事件溯源和 Saga 以實現數據一致性和分布式事務?

[英]What are some popular frameworks available for implementing CQRS, Event Sourcing and Saga for data consistency and distributed transactions?

我想知道一些可用於在應用程序中實現 CQRS、ES、Saga 的流行框架。

作為我研究的一部分,我必須比較這些框架並根據各種-ilities對它們進行評估。

我必須比較這些 [event-sourcing] 框架,並根據各種不同的情況對它們進行評估。

問題的前提是您需要一個框架來實現事件溯源,但實際上您不需要。

Greg Young是事件溯源最有影響力的支持者之一,他經常表達他對框架的疑慮。 例如,參見 他的 QCon London 2013 主題演講,尤其是。 標記 9'。

事件溯源在概念上很簡單,不需要框架通常帶來的那種魔法。 例如,從事件的 stream 重建 state 只需在有問題的 stream 上進行左折疊 此外,您不一定需要專門的數據庫; 我認識一些通過簡單地將事件附加到文件來成功實現事件溯源的人。

如果您的研究旨在比較事件溯源框架,我認為您應該考慮根本沒有使用框架的情況。

Axon是用於構建 CQRS/ES 應用程序的流行框架/服務器。

EventStoreDB是 EventSourcing 部分的流行 EventStore 數據庫。

除了 Axon,在 JVM 上還有 Akka 生態系統(集群分片、持久性和投影模塊(以及仍在進行中的分片守護進程模塊)與 CQRS/ES/DDD 最相關)。 Akka Persistence 的一個好處是能夠從各種數據存儲中進行選擇以用作事件存儲(JDBC SQL 數據庫和 Cassandra 是最常見的,但支持更多) 我的經驗是它具有極高的可用性,並且由於它允許將有狀態的事件源應用程序部署為無狀態(例如在 Kubernetes 中不需要操作員),因此具有很大的部署靈活性。 請注意,因為它是基於演員 model 構建的,所以很多 JVM 可觀察性工具不能很好地與它配合使用(通常假設線程到任務的映射更強),因此建議使用某些商業許可的可觀察性工具。

Lagom 建立在 Akka 之上,並且在 go 關於事物的方式上更加固執己見。 它集成了高級別的 web 框架,因此特別適合處理 web 前端流量。

此外,Cloudstate 還提供了一種多語言(您所需要的只是用支持 grpc 的語言表達域邏輯)事件源實現。

如果您正在尋找托管解決方案,您還可以查看我們在Serialized提供的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM