【发布时间】:2019-05-23 04:13:44
【问题描述】:
我一直在尝试找出在使用 NestJS CQRS 配方 (https://docs.nestjs.com/recipes/cqrs) 时进行“事件溯源”的首选方式。
在过去的几周里,我一直在研究 NestJS 框架,并且喜欢它的各个方面。除了文档,它们在某些方面非常薄。
要么 NestJS 对如何实现“事件溯源”没有真正的意见,要么我遗漏了一些明显的东西。
我的主要问题是:保持事件本身最简单的方法是什么?
现在,我的活动看起来很基本:
import { IEvent } from '@nestjs/cqrs';
export class BookingChangedTitleEvent implements IEvent {
constructor(
public readonly bookingId: string,
public readonly title: string) {}
}
我最初的想法是使用 TypeORM (https://docs.nestjs.com/recipes/sql-typeorm) 并让我的每个事件不仅实现 IEvent,还要让它继承一个 TypeORM @Entity()。
但是对于每个事件,这将有一个表 (SQL) 或集合 (NoSQL),因此无法读取发生在单个聚合中的所有事件。我错过了什么吗?
另一种方法是将每个事件转储到 JSON,这听起来很容易。但是我将如何从数据库中加载对象IEvent 类呢? (听起来我正在实现自己的 ORM)
【问题讨论】:
标签: node.js typescript nestjs cqrs event-sourcing