Dojo
话题
新佳
订阅
极道
元认知
元逻辑
元设计
元编程
元语言
事件溯源教程
比特币区块链是一种分布式的事件流日志
比特币的区块链机制其实是一种分布式的事件流日志,这个事件流记录着所有的比特币交易事件。 比特币是一种虚拟货币,我们知道我们可以通过自己设立一个机器来专门挖矿,也就是“无偿”获得比特币,但是这个“无偿”并不是真正无偿,你的电脑将以算力和工作量的付出为代价,其
微服务的最终一致性与事件流
微服务是指一个个单个小型业务功能的服务,由于各个微服务开发部署都是独立的,因此微服务天然是分布式的,因此,分布式系统的设计问题如CAP定理同样适合微服务架构,虽然微服务本身是无状态的,但是微服务是需要管理状态的。这些状态是指领域模型的状态或存储在自己的专有数据库中。
为什么微服务应该是事件驱动?
建立微服务的真正道路是事件驱动,这是一个有着DDD, CQRS, Event-sourcing, event streaming, complex-event processing(CEP) 等背景以及丰富JavaEE技术经验的架构师的认识,他经历了从传统整体型monolith到微服务架构之转变,细
基于Spring Boot, Axon CQRS/ES,和Docker构建微服务
这是一个使用Spring Boot和Axon以及Docker构建的Event Sorucing源码项目,技术特点:1.使用Java 和Spring Boot实现微服务;2.使用命令和查询职责分离 (CQRS) 和 Event Sourcing (ES) 的框架Axon Framewo
超越 CRUD: 命令、事件和总线
软件编写有时候难以在预算内按时完成的其中一个原因是,缺少对领域专家所说的对商业语言的关注。大多数时候,确认需求意味着将理解的需求映射到某种关系数据模型。然后,构建业务逻辑以在持久性层和表示层之间隧道传输数据,并在此过程中进行必要的调整。虽然并不完美,但该模式仍然使用了很长时间,而日渐增加的复杂性使得
Event-Sourcing和CQRS实战案例
任何试图实现一个完全符合标准的ACID系统的人都知道:你必须顾及很多方面。需要确保数据库实体在事务ACID前提下可以自由创建、修改和删除,而不会有错误风险,在大多数情况下,这种围绕数据库的CRUD总是会有性能方面的损失。这里介绍另外一个方法,设计的基础是基于一系列事件而不是基于数据库这样的可变状态系
Eventuate:基于操作CRDT的服务框架
Eventuate是建立高扩展的事件溯源event sourcing和使用因果一致性建立事件协助的开源服务框架。基于事件驱动和事件溯源的服务能够给予因果顺序的事件流通讯,服务可位于单个服务器本地也可以分布到全球规模,使用因果一致性复制,保持网络分区之间的写操作高可用性。
Eventsourcing: 为什么人们会越来越多选择它?
为什么人们开始谈论“事件流”、“无损数据捕获”、“领域驱动设计”、“CQRS”? 让我们尝试剥离技术,让我们看看下面谎言背后的真相:软件其实是沟通(software is communication)Con
Twitter的分布式日志DistributedLog
Twitter的开源DistributedLog是一款高性能复制日志服务,能提供持久的可复制的强一致性(分布式事务机制),可以作为基础构建设施用于创建可靠的分布式系统,例如可复制的状态机(replicated-state-machine)、一般的pub/sub系统、分布式数据库和分布式队列等。是Ka
什么是事件溯源Event Sourcing?
本文比较全面以易懂方式阐述了什么是事件溯源以及优缺点。 什么是Event Sourcing?“传统”保存应用程序变化数据的方式是存储当前状态。例如,您的应用程序可能是一个日历,所以您想存储约会。它可能看起来像这样:
全新角度总结Twitter Facebook和LinkedIn业务模型与架构
本文从流处理、事件溯源Event Sourcing、Reactive和EDA/CEP角度总结Twitter Facebook和LinkedIn的业务模型与架构设计特点。 通常一个网站系统的架构设计取决于其业务特点,Twitter Facebook和Link
微服务最难的部分是你的数据
该文认为实现微服务最难的部分是业务数据,对于复杂业务的微服务系统必须结合领域驱动设计、事件驱动和EventSourcing等。 微服务中数据状态一般是放在数据库中,微服务是根据分离关注然后封装的设计原理,因此,每个微服务应该拥有和控制自己的数据库,并没有两
数据的规范化与非规范化
本文预言将会出现一种非规范化数据库引擎,它的出现类似当初关系数据库或NoSQL出现一样,会导致革命性的前进。 对于一个需求,我们一般有两个实现方向:normalized规范化和 denormalized 非规范化。
使用事件流扩展微服务
这是一篇来自thoughtworks微服务实战经验总结,总结了传统的点对点集成模型的问题,也就是业务流程orchestration风格的问题,展示了基于事件流的choreography风格在微服务架构中高聚合与松耦合的好处。 来自传统的or
Reactive TraderCloud实时外汇开源交易平台
Reactive TraderCloud是一款实时外汇交易平台,应用Reactive编程原理,其架构特点:1.异步和并发2.每件事都是流Everything is a stream, 所有的服务结构都是以流方式响应,不只是返回一个单个响应结果。3.系统健康和容错, 做了很多系
有关分布式状态和微服务的讨论
CQRS应该是实现分布式状态的一种挑战性实现,挑战点在于:对于站在数据前面的微服务,我们如何能连接到这些数据集?我们如何获得服务的同意达成分布式一致的状态? CAP理论提供分布式状态的模型实现,给定的可用性 一致性和分区性,只能三个之中选择两个,如果你能够
基于Elixir使用Phoenix建立CQRS/ES应用
该文介绍了 Segment Challenge 是如何使用命令查询责任分离CQRS和事件溯源模式建立其Web应用。 使用Elixir遵循领域驱动设计使用CQRS非常自然,包括使用Erlang的Actor模型,聚合根非常适合Elixir中的Process,使
当逻辑编程遭遇CQRS时
我们将看到逻辑编程能做的最令人兴奋的事情之一是实现CQRS模式。Eve语言将CQRS这个理想的设计模式变成了现实。 你知道Eve是一种逻辑编程语言吗?Eve是基于Dedalus ,这是一个Datalog的扩展数据记录 ,Datalog是基于Prolog的逻
上页
下页
关闭