Comments (1)
Hey, just felt like sharing my solution (which is probably not the best way possible 🤷♂ )..
I think each 'domain' should indeed get its own folder, like user.
Getting several of them working at the same time does requires a few changes to the event-store.ts file
:
1. Remove the implementation of IMessageSource
, i.e.:
Needed to do this because otherwise we can't add the extra parameter to
bridgeEventsTo
(see step 2)
export class EventStore implements IEventPublisher {
2. Add an extra parameter to the bridgeEventsTo
method:
Need to make sure that we subscribe to the category of each module
async bridgeEventsTo<T extends IEvent>(subject: Subject<T>, category: string) {
const streamName = `$ce-${category}`;
3. change setEventHandlers
to:
This is needed because you are now setting eventHandlers from several modules, and if you don't spread them then only the eventHandlers from the last module will be available.
setEventHandlers(eventHandlers) {
this.eventHandlers = {...this.eventHandlers, ...eventHandlers};
}
4. then in your modules (such as user.module.ts
):
Making sure we are setting the category for the bridge to subscribe to
this.eventStore.bridgeEventsTo((this.event$ as any).subject$, 'users');
Note:
- I am not setting the category via an extra parameter in the publish method because I am passing it in with my event as metadata..
hope this helps 😃
from examples-nodejs-cqrs-es-swagger.
Related Issues (8)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from examples-nodejs-cqrs-es-swagger.