@uscreen.de/cqrs-kit-2
v0.14.0
Published
> CQRS Starter Kit. Eventsourcing included. Some soldering required.
Keywords
Readme
cqrs-kit
CQRS Starter Kit. Eventsourcing included. Some soldering required.
Alpha-Warning: work in progress, not tested in production and subject of change in api, features and options
Abstract
Goal of this module is to adopt CQRS/ES in a straight and reusable pattern to node applications. It should not provide a framework or make strong assumptions on infrastructure. That being said, the initial release will target frameworks like fastify, express and alike to use this package within their ecosystem. And it will target mongoDB and Nats as primary defaults.
To get to a production ready setup it should provied a working example within a setup of
Assumptions
- storage and message adapters COULD handle their connections, pools, reconnections within this module
- storage and message adapters COULD reuse their clients as injected from the outside
- storage and message adapters COULD be injectable (basic reference implementations inlcluded)
- this module SHOULD NOT provide a framework,
- this module SHOULD NOT require a specific framework,
- this module SHOULD NOT depend on any given framework
- this module SHOULD NOT assume any filestructure
- this module SHOULD NOT implicitly setup a domain
Terminology
TBD
Roadmap
- add "saga/processmanager/story"
- add "DomainRegistry"
Changelog
0.14.0
- switch to ESM
- switch to pnpm
- replace tap with native node tests
- upgrade packages
0.13.0
- added optional
queryparameter toProjection.rebuildmethod.
0.12.0
- use
util.debuglog()for debug output docs - add
Projection.onAfterhook to provide handler result as 3rd parameter, ie.onAfter: (event, payload, result) => {}
0.11.0
- return result of command.emit locally and remote
0.10.0
- add
Projection.onAfterhook - update aggregated state after event is emitted
0.9.0
- allow commands to emit multiple events
0.8.0
- add method
EventStore.removeAggregate
0.5.0
Added
- set
Projection.collectiontofalseto skip collection creation
Changed
- dep [email protected] replaced deprecated
returnOriginal: falsewithreturnDocument: 'after'
0.1.0
Changed
store.updatenow defaults to upsert:false. Replace withstore.createOrUpdatewhich defaults to upsert:true
Tools:
Those are helpfull for development but should not be added as dependencies:
npx nats-cli- listen to nats channelsnpx natsboard- monitoring dashboard
