ENode 2.8 最新架构图简介

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框架特色

  1. 一个DDD开发框架,完美支持基于六边形架构思想的开发

  2. 实现CQRS架构思想,并且框架提供C端命令的处理结果的返回,支持同步返回和异步返回

  3. 内置Event Sourcing(ES)架构模式,让C端的数据持久化变得通用化

  4. 聚合根常驻内存,in-memory domain model

  5. 聚合根的处理基于Command Mailbox, Event Mailbox的思想,类似Actor Model, Actor Mailbox

  6. 严格遵守聚合内强一致性、聚合之间最终一致性的原则

  7. Group Commit Domain event

  8. 基于聚合根ID+事件版本号的唯一索引,实现聚合根的乐观并发控制

  9. 框架保证Command的幂等处理

  10. 通过聚合根ID对命令或事件进行路由,做到最小的并发冲突、最大的并行处理

  11. 消息发送和接收基于分布式消息队列EQueue,支持分布式部署

  12. 基于事件驱动架构范式(EDA,Event-Driven Architecture)

  13. 基于队列的动态扩容/缩容

  14. EventDB中因为存放的都是不可变的事件,所以水平扩展非常容易,框架可内置支持

  15. 支持Process Manager(Saga),以支持一个用户操作跨多个聚合根的业务场景,如订单处理,从而避免分布式事务的使用

  16. ENode实现了CQRS架构面临的大部分技术问题,让开发者可以专注于业务逻辑和业务流程的开发,而无需关心纯技术问题


原文地址:http://www.cnblogs.com/netfocus/p/5401179.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hibernate注解(一)之持久化实体

翻译自 Hibernate Annotations1. 创建POJO作为持久化实体 每个持久化POJO类都是一个实体,并使用 Entity注解(在类级别)声明: Entity public class Flight implements Serializable {Long id;Idpublic Long getId() { return id;…

python请输入你的名字_实现《你的名字》同款滤镜,python+opencv

好久没有上简书,最近上来一看发现这篇文章阅读量远超了其他的文章,还有评论提到说在讲技术的时候卖萌不好。哈哈,当时写的时候完全没想过会有人搜到看,只是为自己的作品留个念想,所以文风比较散漫随意。于是这次来小修…

10.2-控制单元CU的微程序设计

【README】 1.本文总结自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐; 2.微指令:1条微指令就是多个bit位,如8个bit,每个bit位表示一种微操作&#xff1b…

微服务的误读与误解

微服务确实很受欢迎,但是对于微服务的误解也是事实,本文对这些误解一一来介绍下: 一、微服务不够“微”? 尽管微服务定义的很明确,但是开发者社区对它的解释却颇有争议,主要的一些问题如下: 1.它是否是单体架构的代表…

Hibernate注解(二)之映射简单的属性

翻译自 Hibernate Annotations2. 映射简单的属性 2.1.声明基本的属性映射每个非静态非瞬态属性(取决于访问类型的字段或方法)都被认为是持久性的,除非您将其注释为Transient。没有为您的财产注释等同于适当的 Basic注释。该Basic 注释允许…

进程与服务的签名_苹果app签名需要注意哪几点

现在部分的智能手机系统设备和工作一个应用软件,都需求证书的签名认证。未经任何签名的程序是不能在智能手机上设备和工作的。验证签名的底子进程则:智能手机操作系统或软件渠道对收到的原始数据选用相同的杂凑运算得到消息摘要,将与被签署时分的消息摘要…

8.4-中断系统

【README】 1.本文总结自bilibili《计算机组成原理(哈工大刘宏伟)》的视频讲解,非常棒,墙裂推荐; 2.采用一问一答的方式对中断进行总结(中断7问题),refer2 8.4-中断系统小结&…

ASP.NET Core的配置(1):读取配置信息

提到“配置”二字,我想绝大部分.NET开发人员脑海中会立马浮现出两个特殊文件的身影,那就是我们再熟悉不过的app.config和web.config,多年以来我们已经习惯了将结构化的配置信息定义在这两个文件之中。到了.NET Core的时候,很多我们…

EL调用java方法

一、jstl函数 jstl函数自定义二、调用方法的值成变量 第一种使用request对象 <% request.setAttribute(“isOperate”,isShowOperate()); %> 第二种使用标签变量 <c:set var"isOperate" value"<%isShowOperate()%>" />转换成变量使用<…

wordcloud python3.7_[原创]win7/64位系统+python3.7.2下安装wordcloud库失败之解决——一个莫名其妙的方法...

当前环境&#xff1a;win7/64位系统python3.7.2pip-19.2.1使用pip install wordcould安装时出现错误&#xff0c;提示&#xff1a;尝试方法①&#xff1a;考虑更换其他安装源提示没有变化&#xff0c;仍然提示没有找到分发版本-----------强行插入的分割线-------------------(…

1-计算机系统概论

【README】 本文总结自B站 《计算机组成原理&#xff08;哈工大刘宏伟&#xff09;》的视频讲解&#xff0c;非常棒&#xff0c;墙裂推荐&#xff1b; 【1.1】计算机软硬件概念 【1.2】计算机层次结构 【2】计算机基本组成 【2.1】冯诺依曼计算机特点&#xff08;重要*&#…

JetBrains 加入 .NET 基金会

在 BUILD 大会上&#xff0c;微软正式对外宣布&#xff0c;JetBrains 已经加入 .NET 基金会&#xff0c;详细情况可以查看 .NET Foundation 博客。 JetBrains 因为用户推荐、ReSharpe、ReSharper Ultimate 套件等原因&#xff0c;在 .NET 平台投入大量资源。而现在&#xff0c…

jstl中添加自定义的函数

转载自 jstl中添加自定义的函数由于jstl中提供的函数未必能够满足我们的要求&#xff0c;而我们又希望能够像jstl提供的函数那样能够轻松方便使用&#xff0c;那么可以通过自定义函数补充jsltl函数。给jstl添加自定义函数需要以下步骤&#xff1a;定义一个static的public的方…

多智能体强化学习_基于多智能体强化学习主宰星际争霸游戏

大家好&#xff0c;今天我们来介绍基于多智能体强化学习主宰星际争霸游戏这篇论文Grandmaster level in StarCraft II using multi-agent reinforcement learning​doi.org从Alphastar以后 利用强化学习的方法进行星际争霸2AI的又一大突破。Part1 前言游戏介绍(Introduction to…

2-计算机发展及应用

【README】 本文总结自B站 《计算机组成原理&#xff08;哈工大刘宏伟&#xff09;》的视频讲解&#xff0c;非常棒&#xff0c;墙裂推荐&#xff1b; 【1】计算机发展史 【1.1】计算机的产生和发展 【1.2】微型计算机的出现与发展 芯片上的晶体管的数量 与 cpu速度间 有没有关…

ASP.NET Core的配置(2):配置模型详解

在上面一章我们以实例演示的方式介绍了几种读取配置的几种方式&#xff0c;其中涉及到三个重要的对象&#xff0c;它们分别是承载结构化配置信息的Configuration&#xff0c;提供原始配置源数据的ConfigurationProvider&#xff0c;以及作为“中间人”的ConfigurationBuilder。…

Mysql的安装与远程登录

一、安装 &#xff08;1&#xff09;linux版A.linux普通版http://www.jb51.net/article/104107.htmB.ubuntu版 1.安装 sudo apt-get install mysql-server apt-get isntall mysql-client sudo apt-get install libmysqlclient-dev2.设置密码cd /etc/mysql vi debian.cnf ,得…

sqlserver如何定义一个静态变量_[Bazel]自定义规则实现将多个静态库合并为一个动态库或静态库...

1 前言2 自定义规则实现2.1 规则功能2.2 实现规则的理论基础2.3 规则代码实现3 总结4 参考资料1 前言为了实现如标题所述的将多个静态库合并为一个动态库&#xff0c;内置的 Bazel 规则是没有这个功能的&#xff0c;Bazel C/C 相关的内置规则有&#xff1a;cc_binary &#xff…

(转)base64编码(严格说来,base64不算作加解密算法)

【README】 1.本文转自&#xff1a; Java base64加密解密 - xuwc - 博客园参考&#xff1a; https://www.cnblogs.com/luguo3000/p/3940197.html https://blog.csdn.net/jiahao1186/article/detailhttps://www.cnblogs.com/xuwc/p/14058183.htmlhttps://zh.wikipedia.org/wik…

JavaWeb的web.xml标签元素(一)

普通信息标签 &#xff08;1&#xff09;display-name 定义了WEB应用的名字,在servletContextConfig display-name* XML语法&#xff1a;<display-name>AppName</display-name> &#xff08;2&#xff09;description 可以使用description元素来提供有关部署描述符…