XRAPH/Work/Event sourcing
TypeScript · since 2019

NestJS Event Store

A NestJS CQRS module that speaks to EventStoreDB, with persistent subscriptions, catch-up subscriptions, and the plumbing that makes @nestjs/cqrs durable. Pulled out of Ultimate Backend once people started asking for only that part.

Language
TypeScript
Category
Event sourcing
Since
2019
Stars
205
Repository
01

Anatomy

2 modules
01

Streams

Event streams bound to NestJS modules.

02

Projections

Handlers subscribed by stream and type.

02

Why it exists

Design notes

#What it is

A NestJS CQRS module for EventStoreDB. It gives @nestjs/cqrs a durable event store: persistent and catch-up subscriptions, projections, and the wiring between them.

#Where it came from

It was the event-sourcing layer inside Ultimate Backend. People kept opening issues asking how to use only that part, which is a reliable signal that a piece wants to be its own package.

#What it taught me

Event sourcing is straightforward until you need to change an event's shape. Versioning events, upcasting old ones on read, and deciding whether a projection rebuild is safe are the actual work, and none of them are visible in a tutorial. That lesson is directly upstream of Fabriq's decision to make every event versioned and every projection rebuildable from the start rather than as a later retrofit.

03

Signals

GitHub
Stars
205
Language
TypeScript
Since
2019
Adopters
00

Shipping something on NestJS Event Store? Nobody is listed here yet. Tell me what you built and you will be the first.

Get listed
04

Where it sits

Fields · papers