我的基于CQRS的架构目前有4个组件。它更像是一个原型,所以没有什么是一成不变的。
我最初的方法是使用InMemory-Viewstore。 Azure虚拟机有相当多的可用内存,我没有真正看到需要添加复杂性Blob-Storage等。 此外,我试图最小化命令执行延迟,以至少部分绕过整个异步UI问题,以便我可以(在需要时)模拟具有(快速)回调的同步UI(我希望句子有意义^^)
在创建Web客户端时,我发现我的计划存在潜在缺陷。 ViewProcessor的URL显然与WebClient-url不同,因此json请求会因为Same-Origin-Policy而失败。替代方案/像jsonp这样的解决方案似乎并不具有吸引力,因为它们无法解决固有的安全问题。实现ajax请求以定位WebClient本身是一个选项,但我会有冗余功能(webclient和viewprocessor中的视图存储)。
我想在blob-storage中保存视图可以解决这个问题,但我无法摆脱我忽略重要/显而易见的事情的感觉。
Client --command-- CommandProcessor CommandProcessor --event-- ViewProcessor ViewProcessor --view-- Blob (ViewProcessor or CommandProcessor) --notification-- Client Blob --view-- Client
这种情况会有相当长的延迟:|
答案 0 :(得分:1)
我会再次查看blob存储选项。我们将序列化视图对象存储在blob存储中,并且非常快速和稳定。是否存在与您有关的blob存储的某些方面?
埃里克