当前位置: 首页 > 软件库 > 云计算 > Serverless 系统 >

CQRS

授权协议 LGPL-2.1 License
开发语言 JavaScript
所属分类 云计算、 Serverless 系统
软件类型 开源软件
地区 不详
投 递 者 韶亮
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

CQRS.NET

https://www.nuget.org/packages/Cqrs

Symbols now available on nuget.org. See https://devblogs.microsoft.com/nuget/improved-package-debugging-experience-with-the-nuget-org-symbol-server/ for details on how to use them

The framework

A lightweight enterprise Function as a service (FaaS) framework to write function based serverless and micro-service applications in hybrid multi-datacentre, on-premise and Azure environments, offering modern patterns such as CQRS and event-sourcing. Offering a superior combination of serverless, micro-service and traditional deployments both in the cloud and on-premise to suit any business. Deployments can be inter-connected with each other sharing data and resourcing or independent and isolated while providing a consistent framework and guideline for both development, deployment, DevOps and administration.

CQRS.NET has been designed with modularity in mind... see the number of technology packages below you can choose from. Modularity applies to both development concerns like storage as well as operational modularity such as serverless or micro-service deployment, PaaS, VMs or container packaging. Every package and design choice made should be interchangeable with custom code if needed.

CQRS.NET

Tutorials and getting started

For those new to CQRS.NET, we strongly suggest you have a look at our basic Hello World Tutorial that covers the basics of sending messages between a website and a function via commands and events, including pushing real-time messages back to the browser without refreshing your screen in a very simplcity micro-service kinda of way.

Or you can have a look at our basic Northwind Tutorial which takes you through converting an existing legacy website covering some queries, views, read stores and read models, then getting into actioning function with commands, events aggregates and event handlers (the function itself). This takes you on the micro-service path as well while keeping it very simple and running all the services in one website to keep the tutorial simple. At any stage you can start to break up the well structured code into separate API endpoints.

And for those looking for a more thorough tutorial including a deep, deep dive into best practises we suggest you start with the A Beginner's Guide section in the wiki. This covers much, much more than just functions, but modern coding practises that really do work in the cloud.

Documentation

CQRS.NET API reference documentation is available to browse. We are adding more and more documentation as we edit each file. By version 3.0 we aim to have all public methods and classes documented.User documentation is starting off for now in the wiki section of this project. We strongly invite people to post questions and issues which we'll answer and work on.

Sample projects.

Several sample projects are located within the code and on our wiki. These show a few different approaches/common usage scenarios of the framework.

  • One sample is the original sample from CQRSlite, ported to use CQRS.NET - this is not documented and found within the main Visual Studio solution in our code base.
  • The second is a rather basic Hello World sample that covers basic commands and events, but not queries.
  • The third is a more traditional mixed-mode scenario, Northwind Tutorial thats starts off by replacing one query, then one create, update and delete operation out of several in an existing website.

The project should compile without any setup in .NET 4.5.2. I'm guessing Mono 3.10.0 should work too.

Commerical Support

Commercial support is now available through our partner company Chinchilla Software.

Continual improvements

This project is actively developed, however we sometimes have specific feature requests that are outside of our roadmap and plan. We're always open to new ideas and requests for new modules and technology connectors that you need. The biggest requests in version 2.0 were to have better akka.net modules as well as support for Azure blob/table storage and performance/telemetry.

Features

  • Command sending and event publishing.
  • Unit of work through session with aggregate tracking (I'm tempted to remove the UOW).
  • Repository for getting and saving aggregates and process managers.
  • Strategy/Specification pattern for querying.
  • Optimistic concurrency checking.
  • In process bus with autoregistration of handlers.
  • Azure service bus/event hub for event bus'ing.
  • Azure service bus/event hub for command bus'ing.
  • Greg Youngs EventStore for event sourcing.
  • MongoDB for entity, view and project persistence and event sourcing.
  • Azure CosmosDB for event sourcing, entity, view and project persistence.
  • Azure Blob/Table Storage for event sourcing, entity, view and project persistence.
  • Sql for event sourcing, entity, view and project persistence with built-in mirroring.
  • Advanced concurrency support via akka.net

Projects / Nuget packages:

See Nuget Packages in the wiki.

 相关资料
  • 我想使用事件源和CQRS,所以我需要预测(我希望我使用的是正确的术语)来更新我的查询数据库。如何处理数据库错误? 例如,我的一个查询缓存数据库不可用,但我已经更新了其他数据库。因此,当snyc回到业务中时,不可用的数据库将不会与其他数据库一起在snyc中。它如何知道它必须运行例如事件存储中的最后10个域事件?我想我必须存储有关数据库当前状态的信息,但是如果数据库状态存储失败怎么办?有什么想法,最佳

  • 我在CQRS/ES设计中有一个计时案例。为了便于讨论,让我们以Microsoft关于这个主题的示例会议管理为基础(https://msdn.microsoft.com/en-us/library/jj554200.aspx)。 假设在第1分钟创建会议(最大座位数为20)。 在第4分钟,事件到达order mgmt上下文,因此创建了一个座位可用性。 在第7分钟,用户下了一个订单(通过订单管理),购买

  • 我使用NestJS CQRS配方来管理两个实体之间的交互:User和UserProfile。该架构是一个API网关NestJS服务器+每个微服务(User、UserProfile等)的NestJS服务器。 我已经通过API Gateway上的User和UserProfile模块用它们自己的saga/events/命令建立了基本的交互: null 如果后者失败,则引发UserProfileFaile

  • 我希望在我正在从事的一个项目中使用CQR,但是我目前正在努力寻找实现CQR查询端的最佳方法。基于我有限的理解,有一个瘦数据层(有时称为瘦读取层),用于查询数据库并返回DTO,其中包含应用程序UI层使用的查询结果。 由于这是一个Java的EE应用程序,我正在开发薄数据层,使用JPA使用EntityManager.createNamedQuery查询数据库,返回一个包含结果的实体,然后将其映射到DTO

  • null 我们尝试了几件事: > 发出命令: 激发命令 同步处理此命令,如果命令无效或引发事件,则返回错误。 null 缺点:-据我所知,应该用佐贺来编排流程。这里我们介绍“验证”的概念。我不确定这是不是推荐的方法。 验证是一个非常常见的概念。在分布式完全异步系统中如何处理它?

  • 我们有一个使用图形数据库的现有webapplication,我们希望切换到一个使用Axon框架的cqrs的架构。

  • 这个问题与Axon Server/Framework的关系非常松散,因为我是在学习和尝试学习如何构建微服务时专门学习它的。由于在没有实际经验的情况下很难了解所有的架构模式(而且在没有一个大型应用程序来实际测试/构建的情况下,很难从实际经验开始),所以我在这里提出了很多理论(我的问题可能很愚蠢,对不起,我还在学习中)。 我下载了Axon Server,并成功地在三个独立的微服务中构建和运行了包含的g

  • 我对DDD和CQRS的概念是新的,无法找到一个最终的解决方案如何以一种干净的方式上传图像或文件。 我有三个想法来解决这个问题,但我对它们不是很满意。 方式1: 1。在单个请求中发布所有数据,包括图像(多部分) 2。创建,它返回. 3。之后,创建并将与构造函数中的根数据一起传递。就CQRS而言,一个用户交互应该只有一个命令。 方法2: 1。将图像发送到分离endpoint,创建临时文件并返回id或文