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架構面臨的大部分技術問題,讓開發者可以專注於業務邏輯和業務流程的開發,而無需關心純技術問題