ENode架構圖

什麼是ENode
ENode是一個.NET平臺下,純C#開發的,基於DDD,CQRS,ES,EDA,In-Memory架構風格的,能夠幫助開發者開發高併發、高吞吐、可伸縮、可擴展的應用程序的一個應用開發框架。html
- 開源項目地址: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架構面臨的大部分技術問題,讓開發者能夠專一於業務邏輯和業務流程的開發,而無需關心純技術問題