ENode是一個.NET平台下,純C#開發的,基於DDD,CQRS,ES,EDA,In-Memory架構風格的,可以幫助開發者開發高並發、高吞吐、可伸縮、可擴展的應用程序。
開源項目地址:https://github.com/tangxuehua/enode
ENode可能的應用場景如下:
- 當你正在找一個DDD的開發框架時,可以考慮ENode;
- 當你想找一個CQRS架構的實現框架時,可以考慮ENode;當你的系統具有大量的寫入,同時又有更大量的讀取時,只要系統能接受寫入數據和讀取數據的最終一致性(秒級),那就可以考慮使用ENode;ENode可以讓我們對讀寫兩端做不同的技術架構,分開優化,互不影響;
- 當你的業務場景從用戶的角度去看,讀和寫操作就相互明確區分的,就是用戶在寫入或更新一個數據后不需要立即看到結果的場景,那就可以考慮使用ENode;
- 當你想實現CQRS,但還是想能在Command發送后可以同步獲取Command處理結果時,可以使用ENode;
- 當你要實現ES模式時,可以使用ENode;ES的最大好處是整個系統的所有數據的變化都可以追溯其歷史,我們可以把數據還原到任意的某個歷史狀態;
- 當你要找一個異步的、事件驅動的應用開發框架時,可以考慮ENode;ENode在實現EDA架構的同時,可以幫助我們自動從架構層面解決消息的冪等處理、消息不丟,以及並發處理等技術問題;
- 當你希望你的應用能支持高並發、高吞吐、可伸縮、可擴展這些非功能性需求時,可以考慮ENode;
- 當你需要找一個Saga開發框架來代替分布式事務時,可以考慮使用ENode;
只要你的系統需要滿足以上的若干點,就可以考慮選擇使用ENode。