fase(2): shared infrastructure layer

This commit is contained in:
debian
2026-03-04 16:26:32 -05:00
parent 0e6c0c3655
commit 4a58749048
21 changed files with 1170 additions and 23 deletions

View File

@@ -0,0 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.InProcessEventBus = void 0;
const events_1 = require("events");
class InProcessEventBus {
constructor(logger) {
this.emitter = new events_1.EventEmitter();
this.emitter.setMaxListeners(50);
this.logger = logger;
}
async publish(event) {
this.logger.debug({ eventName: event.eventName, aggregateId: event.aggregateId }, 'Publishing domain event');
this.emitter.emit(event.eventName, event);
}
subscribe(eventName, handler) {
this.emitter.on(eventName, (event) => {
handler.handle(event).catch((err) => {
this.logger.error({ eventName, err }, 'Error in event handler');
});
});
}
}
exports.InProcessEventBus = InProcessEventBus;