ENode架構圖 什麼是ENode ENode是一個.NET平臺下,純C#開發的,基於DDD,CQRS,ES,EDA,In-Memory架構風格的,可以幫助開發者開發高併發、高吞吐、可伸縮、可擴展的應用程式的一個應用開發框架。 開源項目地址:https://github.com/tangxuehua ...
ENode架構圖
什麼是ENode
ENode是一個.NET平臺下,純C#開發的,基於DDD,CQRS,ES,EDA,In-Memory架構風格的,可以幫助開發者開發高併發、高吞吐、可伸縮、可擴展的應用程式的一個應用開發框架。
- 開源項目地址:https://github.com/tangxuehua/enode
- 作者博客地址:http://www.cnblogs.com/netfocus/category/496012.html
- QQ交流群號:185916873
- 微信公眾號:ENode
ENode框架特色
- 一個DDD開發框架,完美支持基於六邊形架構思想的開發
- 實現CQRS架構思想,並且框架提供C端命令的處理結果的返回,支持同步返回和非同步返回
- 內置Event Sourcing(ES)架構模式,讓C端的數據持久化變得通用化
- 聚合根常駐記憶體,in-memory domain model
- 聚合根的處理基於Command Mailbox, Event Mailbox的思想,類似Actor Model, Actor Mailbox
- 嚴格遵守聚合內強一致性、聚合之間最終一致性的原則
- Group Commit Domain event
- 基於聚合根ID+事件版本號的唯一索引,實現聚合根的樂觀併發控制
- 框架保證Command的冪等處理
- 通過聚合根ID對命令或事件進行路由,做到最小的併發衝突、最大的並行處理
- 消息發送和接收基於分散式消息隊列EQueue,支持分散式部署
- 基於事件驅動架構範式(EDA,Event-Driven Architecture)
- 基於隊列的動態擴容/縮容
- EventDB中因為存放的都是不可變的事件,所以水平擴展非常容易,框架可內置支持
- 支持Process Manager(Saga),以支持一個用戶操作跨多個聚合根的業務場景,如訂單處理,從而避免分散式事務的使用
- ENode實現了CQRS架構面臨的大部分技術問題,讓開發者可以專註於業務邏輯和業務流程的開發,而無需關心純技術問題