当前位置: 首页 > 后端技术 > PHP

事件消费者投影仪——事件追踪

时间:2023-03-30 00:23:07 PHP

本文转载自【如何解耦】:https://codedecoupled.com/php...在事件溯源架构中,通过事件流获取应用当前状态可能会导致性能问题,Projector(投影仪)通过监听事件生成一个独立的视图来保存应用程序的当前状态。我们可以把它看成是数据库中的物化视图,或者说是一种缓存。以下是我们根据实战经验总结的几个Projector用例。实际用例查询模型用户对页面的响应速度有很高的要求。我们可以使用Projector生成服务于用户的查询模型。值得一提的是,Projector可以使用来自事件流的不同数据持久化方法。例如,事件流原本存储在MySQL中,而Projector可以使用ElastiSearch持久化查询模型:我们看一个简单的案例,使用Projector生成订单查询模型:支持业务实现当其他客户需要获取当前状态时应用程序及时,但不能通过简单的事件传递,我们可以使用Projector生成一个类似于缓冲的Repository。该存储库将为实现业务逻辑提供及时的应用程序状态。让我们看一个简单的案例,使用Projector生成车辆可预订存储库:值得注意的是,这个用例倾向于同步处理方案,因为它通常对时间更敏感。总结Projector是一个简单而强大的模型,Projector的职责单一而专注,易于编写单元测试。本文转载自【WhyDecoupled】:https://codedecoupled.com/php...,如果你也对TDD、DDD和简洁代码感兴趣,请关注公众号【WhyDecoupled】,一起探讨一起软件开发的方式。