使用微服务和CQRS创建微博平台—简介

很长一段时间以来,我一直在做一些小型项目,没有实际用途来学习新的语言或技术。

现在,受mastodon的炒作和我当前的学习目标的启发,我开始开发类似于twitter或mastodon的微博平台。 虽然我不确定它是否会上线,但我主要是在学习新技术,即在node.js和.Net Core上使用CQRS以及一些前端框架。

除了学习新技术和框架外,我还想让人们加入我的学习经验。 这就是为什么我开始这个博客系列

该项目

所以首先我开始计划架构。 您可以在下图中看到草稿。

那么,这里发生了什么?

首先,我计划创建多个前端,以学习(至少是多个框架的基础知识)并在将来进行比较。 将有一个设计,在多个框架中实现。 现在,我计划使用Angular,React和Vue.js。 但是,由于JS的格局变化迅速,我可能还会尝试其他框架。

而对于后端?

我正在计划4个服务+ 1个身份验证服务器。 对于身份验证,我目前正在考虑.Net Core上的IdentityServer4。

然后有2对服务的Posts和Users。 我计划在.Net Core中实现一个in节点,另一个实现。 可能是.Net Core中的Users和Node中的Posts。 但这可能会改变,直到我真正开始编写代码。

数据呢?

由于我打算使用CQRS模式,因此将(至少)有4个数据存储。 2用于事件,2用于可查询的数据。 在这里,我正在考虑将Azure表存储或某些键值存储用于事件,将“常规” SQL存储用于查询。 在相应的事件和查询存储之间,将有一些服务订阅事件流并将结果写入查询存储。

接下来是什么?

首先,如果您仔细阅读,就会发现很多“可能”的问题。 在这种情况下,我将不得不做出决定。 如果您有建议,请告诉我。

在做出重要决定之后,我将从一对CQRS服务夫妇开始。 然后我们会看到。

无论这里发生什么,我都会及时通知您。