Skip to content

Commit 1030868

Browse files
committed
Remove eventStorageWrite from default container as it's implementation-specific
1 parent 7603e25 commit 1030868

File tree

4 files changed

+10
-13
lines changed

4 files changed

+10
-13
lines changed

examples/user-domain/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const {
99
InMemoryMessageBus,
1010
EventDispatcher
1111
} = require('../..'); // node-cqrs
12+
const { InMemorySnapshotStorage } = require('../../dist/in-memory/InMemorySnapshotStorage');
1213
const UserAggregate = require('./UserAggregate');
1314
const UsersProjection = require('./UsersProjection');
1415

@@ -20,6 +21,7 @@ exports.createContainer = () => {
2021

2122
// register infrastructure services
2223
builder.register(InMemoryEventStorage).as('eventStorageReader').as('eventStorageWriter');
24+
builder.register(InMemorySnapshotStorage).as('snapshotStorage');
2325
builder.register(InMemoryMessageBus).as('eventBus');
2426

2527
// register domain entities

src/CqrsContainerBuilder.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { CommandBus } from './CommandBus';
44
import { EventStore } from './EventStore';
55
import { SagaEventHandler } from './SagaEventHandler';
66
import { EventDispatcher } from './EventDispatcher';
7-
import { InMemoryEventStorage, InMemoryMessageBus, InMemorySnapshotStorage } from './in-memory';
7+
import { InMemoryMessageBus } from './in-memory';
88
import { EventValidationProcessor } from './EventValidationProcessor';
99
import { isClass } from './utils';
1010
import {
@@ -29,16 +29,10 @@ export class CqrsContainerBuilder extends ContainerBuilder {
2929
super.register(CommandBus).as('commandBus');
3030
super.register(EventDispatcher).as('eventDispatcher');
3131

32-
super.register(InMemoryEventStorage).as('eventStorageWriter');
33-
super.register(InMemorySnapshotStorage).as('snapshotStorage');
34-
35-
// Register default event dispatch pipeline:
36-
// validate events, write to event storage, write to snapshot storage.
37-
// If any of the processors is not defined, it will be skipped.
38-
super.register((container: IContainer) => [
39-
new EventValidationProcessor(),
40-
container.eventStorageWriter,
41-
container.snapshotStorage
32+
// Register default event dispatch pipeline with event validation only;
33+
// No storage processors added by default
34+
super.register(() => [
35+
new EventValidationProcessor()
4236
]).as('eventDispatchPipeline');
4337
}
4438

src/interfaces/IContainer.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { IEventDispatcher } from './IEventDispatcher';
44
import { IEventStore } from './IEventStore';
55
import { IEventBus } from './IEventBus';
66
import { IDispatchPipelineProcessor } from './IDispatchPipelineProcessor';
7-
import { IEventStorageReader, IEventStorageWriter } from './IEventStorage';
7+
import { IEventStorageReader } from './IEventStorage';
88
import { IAggregateSnapshotStorage } from './IAggregateSnapshotStorage';
99
import { IIdentifierProvider } from './IIdentifierProvider';
1010
import { IExtendableLogger, ILogger } from './ILogger';
@@ -13,7 +13,6 @@ export interface IContainer extends Container {
1313
eventBus: IEventBus;
1414
eventStore: IEventStore
1515
eventStorageReader: IEventStorageReader;
16-
eventStorageWriter?: IEventStorageWriter;
1716
identifierProvider?: IIdentifierProvider;
1817
snapshotStorage?: IAggregateSnapshotStorage;
1918

tests/unit/dispatch-pipeline.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { InMemorySnapshotStorage } from '../../dist/in-memory/InMemorySnapshotStorage';
12
import {
23
ContainerBuilder,
34
EventValidationProcessor,
@@ -22,6 +23,7 @@ describe('eventDispatchPipeline', () => {
2223

2324
builder.register(InMemoryMessageBus).as('externalEventBus');
2425
builder.register(InMemoryEventStorage).as('eventStorageWriter');
26+
builder.register(InMemorySnapshotStorage).as('snapshotStorage');
2527
builder.register((c: IContainer) => [
2628
new EventValidationProcessor(),
2729
c.externalEventBus,

0 commit comments

Comments
 (0)