我被要求在事件采购中做一些探索.我的目标是创建一个满足所有传统CRUD操作的微小API层.我现在正在使用一个名为'sourced'的软件包并尝试使用它(使用Nodejs).
但是,我开始意识到,单独使用事件来源并不是很有用.通常,它与CQRS结合.
当我向服务器发送写命令时,我对CQRS的理解是.该应用程序对数据进行了一些验证.并将其保存在事件存储中(我正在使用mongoDB),例如:这是我的事件存储应该是这样的:
{method:"createAccount",name:"user1", account:1}
{method:"deposit",name:"user1",account: 1 , amount:100}
{method:"deposit",name:"user1",account: 1 , amount:100}
{method:"deposit",name:"user1",account: 1 , amount:100}
{method:"withdraw",name:"user1",account1,amount:250}
Run Code Online (Sandbox Code Playgroud)
它包含所有审计信息,而不是最终状态.但是,我很困惑如何处理读取操作.如果我想阅读帐户余额该怎么办?究竟会发生什么?这是我的问题:
如果有任何建议,我将非常感激,如果我的理解错误,请与我联系.
domain-driven-design cqrs event-sourcing event-store microservices
我有一个单页应用程序在 webpack 开发服务器中运行,用于在我的本地热重载。但是,它的后端应用程序不在我的本地,而是托管在远程服务器上,例如http://remote-server.com.
当我在 chrome 地址字段中使用这样的地址时:0.0.0.0:3000/homepage,http 请求(对远程后端服务器的 api 调用)比使用慢 5 倍(甚至更多)localhost:3000/homepage
我真的很困惑为什么会发生这种情况?
实际上,更准确地说,问题是,当我要求 Chrome ping 0.0.0.0 时,这对浏览器/服务器意味着什么,因为 0.0.0.0 只是用来表示“绑定到任何可能的地址”
http请求就像
get /remote-server.com/api/v1/users
get /remote-server.com/api/v1/products
get /remote-server.com/api/v1/prices
Run Code Online (Sandbox Code Playgroud)
我期待 http 请求花费相同的时间......当我使用0.0.0.0和localhost