@nestjs-transactional/outbox 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -5
- package/dist/externalization/describe-thrown.d.ts +20 -0
- package/dist/externalization/describe-thrown.js +49 -0
- package/dist/externalization/describe-thrown.js.map +1 -0
- package/dist/externalization/externalized.decorator.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/module/outbox-processing.module.js +6 -0
- package/dist/module/outbox-processing.module.js.map +1 -1
- package/dist/module/outbox.module.d.ts +7 -0
- package/dist/module/outbox.module.js +40 -3
- package/dist/module/outbox.module.js.map +1 -1
- package/dist/recovery/outbox-cleanup-scheduler.d.ts +56 -0
- package/dist/recovery/outbox-cleanup-scheduler.js +139 -0
- package/dist/recovery/outbox-cleanup-scheduler.js.map +1 -0
- package/dist/repository/event-publication-repository.d.ts +12 -1
- package/dist/repository/event-publication-repository.js.map +1 -1
- package/dist/testing/in-memory-repository.js +10 -0
- package/dist/testing/in-memory-repository.js.map +1 -1
- package/dist/testing/published-events.js +2 -1
- package/dist/testing/published-events.js.map +1 -1
- package/dist/types/cleanup-config.d.ts +59 -0
- package/dist/types/cleanup-config.js +17 -0
- package/dist/types/cleanup-config.js.map +1 -0
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -135,6 +135,9 @@ OutboxModule.forRoot({
|
|
|
135
135
|
// Automatic retry, off unless you ask for it. maxAttempts counts the
|
|
136
136
|
// first delivery, so 3 means the original plus two retries.
|
|
137
137
|
retry: { maxAttempts: 3, baseDelay: 1_000, factor: 2, maxDelay: 300_000 },
|
|
138
|
+
// Retention for COMPLETED publications, also off unless asked for.
|
|
139
|
+
// 0 = off, which leaves purging to you.
|
|
140
|
+
cleanup: { interval: 3_600_000, retention: 7 * 24 * 3_600_000, batchSize: 500 },
|
|
138
141
|
});
|
|
139
142
|
```
|
|
140
143
|
|
|
@@ -148,6 +151,19 @@ stays `FAILED`; there is no separate dead-letter state, and it remains
|
|
|
148
151
|
visible and resubmittable
|
|
149
152
|
([DD-026](https://github.com/igorgolovanov/nestjs-transactional/blob/main/docs/dd/026-automatic-retry-policy.md)).
|
|
150
153
|
|
|
154
|
+
Under the default `UPDATE` completion mode a delivered publication
|
|
155
|
+
stays as an audit row and nothing removes it, so the table grows until
|
|
156
|
+
someone purges it. `cleanup` puts that purge on a timer: each pass takes
|
|
157
|
+
up to `batchSize` publications whose `completionDate` is older than
|
|
158
|
+
`retention` and deletes them. The bound matters, because the first pass
|
|
159
|
+
after enabling this on an existing deployment meets the table at its
|
|
160
|
+
largest, and one unbounded `DELETE` there is a long transaction holding
|
|
161
|
+
locks your writers need. Passes drain from the oldest end, so a job that
|
|
162
|
+
cannot keep up still shrinks the backlog rather than stranding its tail.
|
|
163
|
+
|
|
164
|
+
`completed.purge(olderThan)` is unchanged and remains the right tool for
|
|
165
|
+
a deliberate one-shot bulk purge.
|
|
166
|
+
|
|
151
167
|
Three injectable APIs for operators, matching Spring Modulith's:
|
|
152
168
|
|
|
153
169
|
```ts
|
|
@@ -193,11 +209,14 @@ await assertable.doesNotContain(OrderCancelledEvent);
|
|
|
193
209
|
`@Externalized` marks an event for forwarding after its local handlers
|
|
194
210
|
complete. The `EVENT_EXTERNALIZER` SPI is transport-agnostic;
|
|
195
211
|
`outbox-microservices` implements it over `@nestjs/microservices`.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
broker
|
|
200
|
-
|
|
212
|
+
|
|
213
|
+
A publication is marked `COMPLETED` when the externalizer resolves,
|
|
214
|
+
and what that proves depends on the transport. Kafka and RabbitMQ wait
|
|
215
|
+
for a broker acknowledgement, so a broker that is down produces a
|
|
216
|
+
`FAILED` row the retry and resubmit machinery can act on. NATS core and
|
|
217
|
+
TCP acknowledge nothing, and gRPC cannot be used for externalization at
|
|
218
|
+
all. The per-transport table is in that package's README and in
|
|
219
|
+
[ADR-021](https://github.com/igorgolovanov/nestjs-transactional/blob/main/docs/adr/021-externalization-acknowledgement-per-transport.md).
|
|
201
220
|
|
|
202
221
|
## Documentation
|
|
203
222
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render an unknown thrown value as something an operator can read.
|
|
3
|
+
*
|
|
4
|
+
* `String(err)` is the obvious thing to reach for and it is wrong here.
|
|
5
|
+
* Broker clients reject with values that are not `Error` instances, and
|
|
6
|
+
* `String()` turns those into `[object Object]`. Measured against the
|
|
7
|
+
* current libraries: `@nestjs/microservices` rejects a RabbitMQ publish
|
|
8
|
+
* with a plain object carrying no `message`, and rejects a publish to a
|
|
9
|
+
* stopped broker with a bare string. Both end up as the failure reason
|
|
10
|
+
* recorded on a `FAILED` publication, which is precisely the field an
|
|
11
|
+
* operator reads when deciding whether to resubmit.
|
|
12
|
+
*
|
|
13
|
+
* The order below is "most specific thing that carries meaning first":
|
|
14
|
+
* an `Error`'s message, a string as itself, any object exposing a
|
|
15
|
+
* string `message`, then a JSON rendering, and only then the
|
|
16
|
+
* `[object Object]` of last resort for something with a throwing or
|
|
17
|
+
* circular shape.
|
|
18
|
+
*/
|
|
19
|
+
export declare function describeThrown(err: unknown): string;
|
|
20
|
+
//# sourceMappingURL=describe-thrown.d.ts.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.describeThrown = describeThrown;
|
|
4
|
+
/**
|
|
5
|
+
* Render an unknown thrown value as something an operator can read.
|
|
6
|
+
*
|
|
7
|
+
* `String(err)` is the obvious thing to reach for and it is wrong here.
|
|
8
|
+
* Broker clients reject with values that are not `Error` instances, and
|
|
9
|
+
* `String()` turns those into `[object Object]`. Measured against the
|
|
10
|
+
* current libraries: `@nestjs/microservices` rejects a RabbitMQ publish
|
|
11
|
+
* with a plain object carrying no `message`, and rejects a publish to a
|
|
12
|
+
* stopped broker with a bare string. Both end up as the failure reason
|
|
13
|
+
* recorded on a `FAILED` publication, which is precisely the field an
|
|
14
|
+
* operator reads when deciding whether to resubmit.
|
|
15
|
+
*
|
|
16
|
+
* The order below is "most specific thing that carries meaning first":
|
|
17
|
+
* an `Error`'s message, a string as itself, any object exposing a
|
|
18
|
+
* string `message`, then a JSON rendering, and only then the
|
|
19
|
+
* `[object Object]` of last resort for something with a throwing or
|
|
20
|
+
* circular shape.
|
|
21
|
+
*/
|
|
22
|
+
function describeThrown(err) {
|
|
23
|
+
if (err instanceof Error) {
|
|
24
|
+
return err.message;
|
|
25
|
+
}
|
|
26
|
+
if (typeof err === 'string') {
|
|
27
|
+
return err;
|
|
28
|
+
}
|
|
29
|
+
if (typeof err === 'object' && err !== null) {
|
|
30
|
+
const message = err.message;
|
|
31
|
+
if (typeof message === 'string' && message.length > 0) {
|
|
32
|
+
return message;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
const json = JSON.stringify(err);
|
|
36
|
+
// `JSON.stringify` returns `undefined` for a value it cannot
|
|
37
|
+
// represent, and `{}` for an object whose own properties are all
|
|
38
|
+
// non-enumerable, neither of which tells anyone anything.
|
|
39
|
+
if (json !== undefined && json !== '{}') {
|
|
40
|
+
return json;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// Circular, or a throwing `toJSON`. Fall through.
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return String(err);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=describe-thrown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"describe-thrown.js","sourceRoot":"","sources":["../../src/externalization/describe-thrown.ts"],"names":[],"mappings":";;AAkBA,wCAyBC;AA3CD;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,cAAc,CAAC,GAAY;IACzC,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAI,GAA6B,CAAC,OAAO,CAAC;QACvD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACjC,6DAA6D;YAC7D,iEAAiE;YACjE,0DAA0D;YAC1D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"externalized.decorator.js","sourceRoot":"","sources":["../../src/externalization/externalized.decorator.ts"],"names":[],"mappings":";;;AAoHA,
|
|
1
|
+
{"version":3,"file":"externalized.decorator.js","sourceRoot":"","sources":["../../src/externalization/externalized.decorator.ts"],"names":[],"mappings":";;;AAoHA,oCAqBC;AAOD,0DAGC;AAnJD,4BAA0B;AAE1B;;;;;;;GAOG;AACU,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AA8DrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,SAAgB,YAAY,CAC1B,OAAoC;IAEpC,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,mEAAmE;IACnE,kEAAkE;IAClE,4BAA4B;IAC5B,MAAM,QAAQ,GAAyB;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAsD;QAC1E,OAAO,EAAE,OAAO,CAAC,OACkE;KACpF,CAAC;IAEF,OAAO,CAAC,MAAc,EAAQ,EAAE;QAC9B,OAAO,CAAC,cAAc,CAAC,6BAAqB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,MAAc;IACpD,MAAM,KAAK,GAAY,OAAO,CAAC,WAAW,CAAC,6BAAqB,EAAE,MAAM,CAAC,CAAC;IAC1E,OAAO,KAAyC,CAAC;AACnD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './types/event-publication';
|
|
|
3
3
|
export * from './types/completion-mode';
|
|
4
4
|
export * from './types/resubmission-options';
|
|
5
5
|
export * from './types/staleness-config';
|
|
6
|
+
export * from './types/cleanup-config';
|
|
6
7
|
export * from './types/retry-config';
|
|
7
8
|
export * from './types/errors';
|
|
8
9
|
export { DEFAULT_DRAIN_TIMEOUT_MS } from './shutdown/drain';
|
|
@@ -27,10 +28,12 @@ export type { ExternalizationMetadata } from './externalization/types';
|
|
|
27
28
|
export type { EventExternalizer } from './externalization/event-externalizer';
|
|
28
29
|
export { EVENT_EXTERNALIZER } from './externalization/event-externalizer';
|
|
29
30
|
export { ExternalizationError } from './externalization/errors';
|
|
31
|
+
export { describeThrown } from './externalization/describe-thrown';
|
|
30
32
|
export { Externalized, getExternalizedMetadata, EXTERNALIZED_METADATA, } from './externalization/externalized.decorator';
|
|
31
33
|
export type { ExternalizedOptions, ExternalizedMetadata, } from './externalization/externalized.decorator';
|
|
32
34
|
export { ExternalizationRegistry, EXTERNALIZATION_REGISTRY, } from './externalization/externalization-registry';
|
|
33
35
|
export * from './recovery/staleness-monitor';
|
|
36
|
+
export * from './recovery/outbox-cleanup-scheduler';
|
|
34
37
|
export * from './recovery/outbox-retry-scheduler';
|
|
35
38
|
export * from './api/failed-event-publications';
|
|
36
39
|
export * from './api/incomplete-event-publications';
|
package/dist/index.js
CHANGED
|
@@ -14,12 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.EXTERNALIZATION_REGISTRY = exports.ExternalizationRegistry = exports.EXTERNALIZED_METADATA = exports.getExternalizedMetadata = exports.Externalized = exports.ExternalizationError = exports.EVENT_EXTERNALIZER = exports.DEFAULT_DRAIN_TIMEOUT_MS = void 0;
|
|
17
|
+
exports.EXTERNALIZATION_REGISTRY = exports.ExternalizationRegistry = exports.EXTERNALIZED_METADATA = exports.getExternalizedMetadata = exports.Externalized = exports.describeThrown = exports.ExternalizationError = exports.EVENT_EXTERNALIZER = exports.DEFAULT_DRAIN_TIMEOUT_MS = void 0;
|
|
18
18
|
__exportStar(require("./types/publication-status"), exports);
|
|
19
19
|
__exportStar(require("./types/event-publication"), exports);
|
|
20
20
|
__exportStar(require("./types/completion-mode"), exports);
|
|
21
21
|
__exportStar(require("./types/resubmission-options"), exports);
|
|
22
22
|
__exportStar(require("./types/staleness-config"), exports);
|
|
23
|
+
__exportStar(require("./types/cleanup-config"), exports);
|
|
23
24
|
__exportStar(require("./types/retry-config"), exports);
|
|
24
25
|
__exportStar(require("./types/errors"), exports);
|
|
25
26
|
var drain_1 = require("./shutdown/drain");
|
|
@@ -44,6 +45,10 @@ var event_externalizer_1 = require("./externalization/event-externalizer");
|
|
|
44
45
|
Object.defineProperty(exports, "EVENT_EXTERNALIZER", { enumerable: true, get: function () { return event_externalizer_1.EVENT_EXTERNALIZER; } });
|
|
45
46
|
var errors_1 = require("./externalization/errors");
|
|
46
47
|
Object.defineProperty(exports, "ExternalizationError", { enumerable: true, get: function () { return errors_1.ExternalizationError; } });
|
|
48
|
+
// Exported because every externalizer implementation faces the same
|
|
49
|
+
// problem: broker clients reject with values that are not `Error`s.
|
|
50
|
+
var describe_thrown_1 = require("./externalization/describe-thrown");
|
|
51
|
+
Object.defineProperty(exports, "describeThrown", { enumerable: true, get: function () { return describe_thrown_1.describeThrown; } });
|
|
47
52
|
var externalized_decorator_1 = require("./externalization/externalized.decorator");
|
|
48
53
|
Object.defineProperty(exports, "Externalized", { enumerable: true, get: function () { return externalized_decorator_1.Externalized; } });
|
|
49
54
|
Object.defineProperty(exports, "getExternalizedMetadata", { enumerable: true, get: function () { return externalized_decorator_1.getExternalizedMetadata; } });
|
|
@@ -52,6 +57,7 @@ var externalization_registry_1 = require("./externalization/externalization-regi
|
|
|
52
57
|
Object.defineProperty(exports, "ExternalizationRegistry", { enumerable: true, get: function () { return externalization_registry_1.ExternalizationRegistry; } });
|
|
53
58
|
Object.defineProperty(exports, "EXTERNALIZATION_REGISTRY", { enumerable: true, get: function () { return externalization_registry_1.EXTERNALIZATION_REGISTRY; } });
|
|
54
59
|
__exportStar(require("./recovery/staleness-monitor"), exports);
|
|
60
|
+
__exportStar(require("./recovery/outbox-cleanup-scheduler"), exports);
|
|
55
61
|
__exportStar(require("./recovery/outbox-retry-scheduler"), exports);
|
|
56
62
|
__exportStar(require("./api/failed-event-publications"), exports);
|
|
57
63
|
__exportStar(require("./api/incomplete-event-publications"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,+DAA6C;AAC7C,2DAAyC;AACzC,uDAAqC;AACrC,iDAA+B;AAE/B,0CAA4D;AAAnD,iHAAA,wBAAwB,OAAA;AAEjC,mEAAiD;AACjD,sEAAoD;AACpD,sEAAoD;AACpD,wEAAsD;AAEtD,4EAA0D;AAE1D,wEAAsD;AACtD,+DAA6C;AAC7C,yEAAuD;AACvD,qEAAmD;AAEnD,+EAA6D;AAC7D,iEAA+C;AAE/C,2CAAyB;AAIzB,sEAAoD;AACpD,4EAA0D;AAC1D,2EAAyD;AACzD,iEAA+C;AAI/C,2EAA0E;AAAjE,wHAAA,kBAAkB,OAAA;AAC3B,mDAAgE;AAAvD,8GAAA,oBAAoB,OAAA;AAC7B,mFAIkD;AAHhD,sHAAA,YAAY,OAAA;AACZ,iIAAA,uBAAuB,OAAA;AACvB,+HAAA,qBAAqB,OAAA;AAMvB,uFAGoD;AAFlD,mIAAA,uBAAuB,OAAA;AACvB,oIAAA,wBAAwB,OAAA;AAG1B,+DAA6C;AAC7C,oEAAkD;AAElD,kEAAgD;AAChD,sEAAoD;AACpD,qEAAmD;AAEnD,8DAA4C;AAE5C,yDAAuC;AACvC,oEAAkD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,4DAA0C;AAC1C,0DAAwC;AACxC,+DAA6C;AAC7C,2DAAyC;AACzC,yDAAuC;AACvC,uDAAqC;AACrC,iDAA+B;AAE/B,0CAA4D;AAAnD,iHAAA,wBAAwB,OAAA;AAEjC,mEAAiD;AACjD,sEAAoD;AACpD,sEAAoD;AACpD,wEAAsD;AAEtD,4EAA0D;AAE1D,wEAAsD;AACtD,+DAA6C;AAC7C,yEAAuD;AACvD,qEAAmD;AAEnD,+EAA6D;AAC7D,iEAA+C;AAE/C,2CAAyB;AAIzB,sEAAoD;AACpD,4EAA0D;AAC1D,2EAAyD;AACzD,iEAA+C;AAI/C,2EAA0E;AAAjE,wHAAA,kBAAkB,OAAA;AAC3B,mDAAgE;AAAvD,8GAAA,oBAAoB,OAAA;AAC7B,oEAAoE;AACpE,oEAAoE;AACpE,qEAAmE;AAA1D,iHAAA,cAAc,OAAA;AACvB,mFAIkD;AAHhD,sHAAA,YAAY,OAAA;AACZ,iIAAA,uBAAuB,OAAA;AACvB,+HAAA,qBAAqB,OAAA;AAMvB,uFAGoD;AAFlD,mIAAA,uBAAuB,OAAA;AACvB,oIAAA,wBAAwB,OAAA;AAG1B,+DAA6C;AAC7C,sEAAoD;AACpD,oEAAkD;AAElD,kEAAgD;AAChD,sEAAoD;AACpD,qEAAmD;AAEnD,8DAA4C;AAE5C,yDAAuC;AACvC,oEAAkD"}
|
|
@@ -52,6 +52,11 @@ let OutboxProcessingModule = class OutboxProcessingModule {
|
|
|
52
52
|
for (const scheduler of this.bundle.retrySchedulers) {
|
|
53
53
|
scheduler.start();
|
|
54
54
|
}
|
|
55
|
+
// Likewise a no-op unless `cleanup.interval > 0` (C4) — retention
|
|
56
|
+
// of completed publications is opt-in, and stays manual otherwise.
|
|
57
|
+
for (const scheduler of this.bundle.cleanupSchedulers) {
|
|
58
|
+
scheduler.start();
|
|
59
|
+
}
|
|
55
60
|
}
|
|
56
61
|
/**
|
|
57
62
|
* Drain every worker before NestJS proceeds with the rest of the
|
|
@@ -74,6 +79,7 @@ let OutboxProcessingModule = class OutboxProcessingModule {
|
|
|
74
79
|
...this.bundle.processors.map((processor) => processor.stop()),
|
|
75
80
|
...this.bundle.monitors.map((monitor) => monitor.stop()),
|
|
76
81
|
...this.bundle.retrySchedulers.map((scheduler) => scheduler.stop()),
|
|
82
|
+
...this.bundle.cleanupSchedulers.map((scheduler) => scheduler.stop()),
|
|
77
83
|
]);
|
|
78
84
|
}
|
|
79
85
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox-processing.module.js","sourceRoot":"","sources":["../../src/module/outbox-processing.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AAExB,mDAAwF;AAExF;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAGd;IAFnB,YAEmB,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAC9C,CAAC;IAEJ,sBAAsB;QACpB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/C,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,iEAAiE;QACjE,wCAAwC;QACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACpD,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC9D,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACxD,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"outbox-processing.module.js","sourceRoot":"","sources":["../../src/module/outbox-processing.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AAExB,mDAAwF;AAExF;;;;;;;;;;;;;;;;;;;GAmBG;AAEI,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAGd;IAFnB,YAEmB,MAA8B;QAA9B,WAAM,GAAN,MAAM,CAAwB;IAC9C,CAAC;IAEJ,sBAAsB;QACpB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC/C,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3C,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QACD,iEAAiE;QACjE,wCAAwC;QACxC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACpD,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;QACD,kEAAkE;QAClE,mEAAmE;QACnE,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACtD,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,qBAAqB;QACzB,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAC9D,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACxD,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACnE,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACtE,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,eAAM,EAAC,EAAE,CAAC;IAGN,WAAA,IAAA,eAAM,EAAC,wCAAwB,CAAC,CAAA;;GAFxB,sBAAsB,CAiDlC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type DynamicModule, type InjectionToken, type ModuleMetadata, type Provider, type Type } from '@nestjs/common';
|
|
2
2
|
import { EventPublicationProcessor } from '../dispatcher/event-publication-processor';
|
|
3
3
|
import { type EventPublicationProcessorOptions } from '../dispatcher/processor-options';
|
|
4
|
+
import { OutboxCleanupScheduler } from '../recovery/outbox-cleanup-scheduler';
|
|
4
5
|
import { OutboxRetryScheduler } from '../recovery/outbox-retry-scheduler';
|
|
5
6
|
import { StalenessMonitor } from '../recovery/staleness-monitor';
|
|
6
7
|
import { StartupRecoveryService } from '../recovery/startup-recovery';
|
|
8
|
+
import { type OutboxCleanupConfig } from '../types/cleanup-config';
|
|
7
9
|
import { CompletionMode } from '../types/completion-mode';
|
|
8
10
|
import { type OutboxRetryConfig } from '../types/retry-config';
|
|
9
11
|
import { type StalenessConfig } from '../types/staleness-config';
|
|
@@ -43,6 +45,8 @@ export interface OutboxModuleOptions {
|
|
|
43
45
|
readonly staleness?: Partial<StalenessConfig>;
|
|
44
46
|
/** Automatic retry policy for FAILED publications (DD-026). Off unless `maxAttempts > 0`. */
|
|
45
47
|
readonly retry?: Partial<OutboxRetryConfig>;
|
|
48
|
+
/** Retention policy for COMPLETED publications (C4). Off unless `interval > 0`. */
|
|
49
|
+
readonly cleanup?: Partial<OutboxCleanupConfig>;
|
|
46
50
|
readonly republishOnStartup?: boolean;
|
|
47
51
|
readonly startupBatchSize?: number;
|
|
48
52
|
readonly completionMode?: CompletionMode;
|
|
@@ -71,6 +75,8 @@ export interface OutboxModuleAsyncFactoryResult {
|
|
|
71
75
|
readonly staleness?: Partial<StalenessConfig>;
|
|
72
76
|
/** Automatic retry policy for FAILED publications (DD-026). Off unless `maxAttempts > 0`. */
|
|
73
77
|
readonly retry?: Partial<OutboxRetryConfig>;
|
|
78
|
+
/** Retention policy for COMPLETED publications (C4). Off unless `interval > 0`. */
|
|
79
|
+
readonly cleanup?: Partial<OutboxCleanupConfig>;
|
|
74
80
|
readonly republishOnStartup?: boolean;
|
|
75
81
|
readonly startupBatchSize?: number;
|
|
76
82
|
readonly completionMode?: CompletionMode;
|
|
@@ -110,6 +116,7 @@ export interface OutboxProcessingBundle {
|
|
|
110
116
|
readonly processors: readonly EventPublicationProcessor[];
|
|
111
117
|
readonly monitors: readonly StalenessMonitor[];
|
|
112
118
|
readonly retrySchedulers: readonly OutboxRetryScheduler[];
|
|
119
|
+
readonly cleanupSchedulers: readonly OutboxCleanupScheduler[];
|
|
113
120
|
readonly recoveryServices: readonly StartupRecoveryService[];
|
|
114
121
|
}
|
|
115
122
|
/**
|
|
@@ -20,6 +20,7 @@ const outbox_event_publisher_1 = require("../dispatcher/outbox-event-publisher")
|
|
|
20
20
|
const processor_options_1 = require("../dispatcher/processor-options");
|
|
21
21
|
const event_externalizer_1 = require("../externalization/event-externalizer");
|
|
22
22
|
const externalization_registry_1 = require("../externalization/externalization-registry");
|
|
23
|
+
const outbox_cleanup_scheduler_1 = require("../recovery/outbox-cleanup-scheduler");
|
|
23
24
|
const outbox_retry_scheduler_1 = require("../recovery/outbox-retry-scheduler");
|
|
24
25
|
const staleness_monitor_1 = require("../recovery/staleness-monitor");
|
|
25
26
|
const startup_recovery_1 = require("../recovery/startup-recovery");
|
|
@@ -33,6 +34,7 @@ const event_type_registry_1 = require("../serialization/event-type-registry");
|
|
|
33
34
|
const json_event_serializer_1 = require("../serialization/json-event-serializer");
|
|
34
35
|
const in_memory_repository_1 = require("../testing/in-memory-repository");
|
|
35
36
|
const token_utils_1 = require("../tokens/token-utils");
|
|
37
|
+
const cleanup_config_1 = require("../types/cleanup-config");
|
|
36
38
|
const retry_config_1 = require("../types/retry-config");
|
|
37
39
|
const staleness_config_1 = require("../types/staleness-config");
|
|
38
40
|
const DEFAULT_DATA_SOURCE = 'default';
|
|
@@ -62,6 +64,9 @@ function resolveStalenessConfig(staleness) {
|
|
|
62
64
|
function resolveRetryConfig(retry) {
|
|
63
65
|
return { ...retry_config_1.DEFAULT_RETRY_CONFIG, ...retry };
|
|
64
66
|
}
|
|
67
|
+
function resolveCleanupConfig(cleanup) {
|
|
68
|
+
return { ...cleanup_config_1.DEFAULT_CLEANUP_CONFIG, ...cleanup };
|
|
69
|
+
}
|
|
65
70
|
function resolveRecoveryOptions(republishOnStartup, startupBatchSize) {
|
|
66
71
|
return {
|
|
67
72
|
republishOnStartup: republishOnStartup ?? false,
|
|
@@ -144,15 +149,17 @@ let OutboxModule = class OutboxModule {
|
|
|
144
149
|
const stalenessCfg = resolveStalenessConfig(options.staleness);
|
|
145
150
|
const recoveryOpts = resolveRecoveryOptions(options.republishOnStartup, options.startupBatchSize);
|
|
146
151
|
const retryCfg = resolveRetryConfig(options.retry);
|
|
152
|
+
const cleanupCfg = resolveCleanupConfig(options.cleanup);
|
|
147
153
|
this.registrations.set(ds, {
|
|
148
154
|
dataSource: ds,
|
|
149
155
|
processorOptions: processorOpts,
|
|
150
156
|
stalenessConfig: stalenessCfg,
|
|
151
157
|
recoveryOptions: recoveryOpts,
|
|
152
158
|
retryConfig: retryCfg,
|
|
159
|
+
cleanupConfig: cleanupCfg,
|
|
153
160
|
});
|
|
154
161
|
const providers = [
|
|
155
|
-
...buildPerDataSourceProviders(ds, options.repository, options.serializer, processorOpts, stalenessCfg, recoveryOpts, retryCfg),
|
|
162
|
+
...buildPerDataSourceProviders(ds, options.repository, options.serializer, processorOpts, stalenessCfg, recoveryOpts, retryCfg, cleanupCfg),
|
|
156
163
|
];
|
|
157
164
|
const exportTokens = [...perDataSourceExports(ds)];
|
|
158
165
|
if (ds === DEFAULT_DATA_SOURCE) {
|
|
@@ -207,6 +214,7 @@ let OutboxModule = class OutboxModule {
|
|
|
207
214
|
stalenessConfig: resolveStalenessConfig(undefined),
|
|
208
215
|
recoveryOptions: resolveRecoveryOptions(undefined, undefined),
|
|
209
216
|
retryConfig: resolveRetryConfig(undefined),
|
|
217
|
+
cleanupConfig: resolveCleanupConfig(undefined),
|
|
210
218
|
});
|
|
211
219
|
const asyncToken = ASYNC_OPTIONS_TOKEN(ds);
|
|
212
220
|
const asyncOptionsProvider = {
|
|
@@ -229,6 +237,8 @@ let OutboxModule = class OutboxModule {
|
|
|
229
237
|
const recoveryOptionsToken = perDsRecoveryOptionsToken(ds);
|
|
230
238
|
const retryToken = perDsRetrySchedulerToken(ds);
|
|
231
239
|
const retryConfigToken = perDsRetryConfigToken(ds);
|
|
240
|
+
const cleanupToken = perDsCleanupSchedulerToken(ds);
|
|
241
|
+
const cleanupConfigToken = perDsCleanupConfigToken(ds);
|
|
232
242
|
const providers = [
|
|
233
243
|
asyncOptionsProvider,
|
|
234
244
|
{
|
|
@@ -298,6 +308,16 @@ let OutboxModule = class OutboxModule {
|
|
|
298
308
|
new outbox_retry_scheduler_1.OutboxRetryScheduler(new failed_event_publications_1.FailedEventPublications(repo), cfg),
|
|
299
309
|
inject: [repositoryToken, retryConfigToken],
|
|
300
310
|
},
|
|
311
|
+
{
|
|
312
|
+
provide: cleanupConfigToken,
|
|
313
|
+
useFactory: (opts) => resolveCleanupConfig(opts.cleanup),
|
|
314
|
+
inject: [asyncToken],
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
provide: cleanupToken,
|
|
318
|
+
useFactory: (repo, cfg) => new outbox_cleanup_scheduler_1.OutboxCleanupScheduler(repo, cfg),
|
|
319
|
+
inject: [repositoryToken, cleanupConfigToken],
|
|
320
|
+
},
|
|
301
321
|
{
|
|
302
322
|
provide: recoveryOptionsToken,
|
|
303
323
|
useFactory: (opts) => resolveRecoveryOptions(opts.republishOnStartup, opts.startupBatchSize),
|
|
@@ -413,7 +433,13 @@ function perDsRetrySchedulerToken(ds) {
|
|
|
413
433
|
function perDsRetryConfigToken(ds) {
|
|
414
434
|
return `${ds}OutboxRetryConfig`;
|
|
415
435
|
}
|
|
416
|
-
function
|
|
436
|
+
function perDsCleanupSchedulerToken(ds) {
|
|
437
|
+
return `${ds}OutboxCleanupScheduler`;
|
|
438
|
+
}
|
|
439
|
+
function perDsCleanupConfigToken(ds) {
|
|
440
|
+
return `${ds}OutboxCleanupConfig`;
|
|
441
|
+
}
|
|
442
|
+
function buildPerDataSourceProviders(ds, repository, serializer, processorOpts, stalenessCfg, recoveryOpts, retryCfg, cleanupCfg) {
|
|
417
443
|
const eventTypeRegistryToken = (0, token_utils_1.getEventTypeRegistryToken)(ds);
|
|
418
444
|
const repositoryToken = (0, token_utils_1.getEventPublicationRepositoryToken)(ds);
|
|
419
445
|
const serializerToken = (0, token_utils_1.getOutboxEventSerializerToken)(ds);
|
|
@@ -429,6 +455,8 @@ function buildPerDataSourceProviders(ds, repository, serializer, processorOpts,
|
|
|
429
455
|
const recoveryOptionsToken = perDsRecoveryOptionsToken(ds);
|
|
430
456
|
const retryToken = perDsRetrySchedulerToken(ds);
|
|
431
457
|
const retryConfigToken = perDsRetryConfigToken(ds);
|
|
458
|
+
const cleanupToken = perDsCleanupSchedulerToken(ds);
|
|
459
|
+
const cleanupConfigToken = perDsCleanupConfigToken(ds);
|
|
432
460
|
return [
|
|
433
461
|
{
|
|
434
462
|
provide: eventTypeRegistryToken,
|
|
@@ -485,6 +513,12 @@ function buildPerDataSourceProviders(ds, repository, serializer, processorOpts,
|
|
|
485
513
|
new outbox_retry_scheduler_1.OutboxRetryScheduler(new failed_event_publications_1.FailedEventPublications(repo), cfg),
|
|
486
514
|
inject: [repositoryToken, retryConfigToken],
|
|
487
515
|
},
|
|
516
|
+
{ provide: cleanupConfigToken, useValue: cleanupCfg },
|
|
517
|
+
{
|
|
518
|
+
provide: cleanupToken,
|
|
519
|
+
useFactory: (repo, cfg) => new outbox_cleanup_scheduler_1.OutboxCleanupScheduler(repo, cfg),
|
|
520
|
+
inject: [repositoryToken, cleanupConfigToken],
|
|
521
|
+
},
|
|
488
522
|
{ provide: recoveryOptionsToken, useValue: recoveryOpts },
|
|
489
523
|
// StartupRecoveryService for non-default dataSources alias to the
|
|
490
524
|
// class-token instance registered by the default-DS forRoot. The
|
|
@@ -535,6 +569,7 @@ function buildDefaultDataSourceAliases() {
|
|
|
535
569
|
{ provide: event_publication_processor_1.EventPublicationProcessor, useExisting: (0, token_utils_1.getEventPublicationProcessorToken)(ds) },
|
|
536
570
|
{ provide: staleness_monitor_1.StalenessMonitor, useExisting: perDsStalenessMonitorToken(ds) },
|
|
537
571
|
{ provide: outbox_retry_scheduler_1.OutboxRetryScheduler, useExisting: perDsRetrySchedulerToken(ds) },
|
|
572
|
+
{ provide: outbox_cleanup_scheduler_1.OutboxCleanupScheduler, useExisting: perDsCleanupSchedulerToken(ds) },
|
|
538
573
|
{ provide: exports.OUTBOX_PROCESSOR_OPTIONS, useExisting: perDsProcessorOptionsToken(ds) },
|
|
539
574
|
{ provide: exports.OUTBOX_STALENESS_CONFIG, useExisting: perDsStalenessConfigToken(ds) },
|
|
540
575
|
{ provide: exports.OUTBOX_RETRY_CONFIG, useExisting: perDsRetryConfigToken(ds) },
|
|
@@ -628,6 +663,9 @@ function buildProcessingBundleProvider(moduleClass) {
|
|
|
628
663
|
get retrySchedulers() {
|
|
629
664
|
return dsNames.map((ds) => get(perDsRetrySchedulerToken(ds)));
|
|
630
665
|
},
|
|
666
|
+
get cleanupSchedulers() {
|
|
667
|
+
return dsNames.map((ds) => get(perDsCleanupSchedulerToken(ds)));
|
|
668
|
+
},
|
|
631
669
|
get recoveryServices() {
|
|
632
670
|
return dsNames.map((ds) => get(perDsStartupRecoveryToken(ds)));
|
|
633
671
|
},
|
|
@@ -653,6 +691,5 @@ function privateRegistrations(moduleClass) {
|
|
|
653
691
|
// no longer used directly in this file (the per-DS
|
|
654
692
|
// publisher pushes hooks directly onto the active-transaction object,
|
|
655
693
|
// bypassing manager.registerBeforeCommit's single-tx assumption).
|
|
656
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
657
694
|
const _txManagerRef = core_2.TransactionManager;
|
|
658
695
|
//# sourceMappingURL=outbox.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outbox.module.js","sourceRoot":"","sources":["../../src/module/outbox.module.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"outbox.module.js","sourceRoot":"","sources":["../../src/module/outbox.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { EventPublicationRepository } from '../repository/event-publication-repository';
|
|
2
|
+
import type { OutboxCleanupConfig } from '../types/cleanup-config';
|
|
3
|
+
/**
|
|
4
|
+
* Periodically removes publications that have been `COMPLETED` longer
|
|
5
|
+
* than the configured retention window (C4).
|
|
6
|
+
*
|
|
7
|
+
* Under the default `UPDATE` completion mode a delivered publication
|
|
8
|
+
* stays as an audit row forever. The primitives to purge it have always
|
|
9
|
+
* existed on the operator API; what was missing was anything to run
|
|
10
|
+
* them on a schedule.
|
|
11
|
+
*
|
|
12
|
+
* Disabled unless `config.interval > 0`, in which case {@link start}
|
|
13
|
+
* never schedules the loop and says so once in the log.
|
|
14
|
+
*
|
|
15
|
+
* Deliberately bounded rather than issuing one `DELETE` over the whole
|
|
16
|
+
* retention window: it selects up to `batchSize` eligible publications
|
|
17
|
+
* with `findCompleted` and deletes them one at a time. That costs more
|
|
18
|
+
* round-trips, and buys two things worth more. A pass cannot turn into a
|
|
19
|
+
* single long transaction holding locks that writers need, which is the
|
|
20
|
+
* realistic hazard on the first pass after enabling cleanup on an
|
|
21
|
+
* existing deployment. And it uses only methods
|
|
22
|
+
* {@link EventPublicationRepository} already had, so it needs no SPI
|
|
23
|
+
* change and behaves identically for a third-party implementation.
|
|
24
|
+
*
|
|
25
|
+
* `CompletedEventPublications.purge(...)` stays what it was: the
|
|
26
|
+
* operator-facing one-shot for a deliberate bulk purge, where a single
|
|
27
|
+
* statement is what you want.
|
|
28
|
+
*/
|
|
29
|
+
export declare class OutboxCleanupScheduler {
|
|
30
|
+
private readonly repository;
|
|
31
|
+
private readonly config;
|
|
32
|
+
private readonly logger;
|
|
33
|
+
private running;
|
|
34
|
+
private cleanupLoop;
|
|
35
|
+
/** The pass currently running, or `null` when idle. See {@link stop}. */
|
|
36
|
+
private inFlightPass;
|
|
37
|
+
constructor(repository: EventPublicationRepository, config: OutboxCleanupConfig);
|
|
38
|
+
/** Start the cleanup loop. Idempotent; a no-op when cleanup is disabled. */
|
|
39
|
+
start(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Stop the loop and drain the pass already in flight, bounded by
|
|
42
|
+
* `config.shutdownTimeout`. Idempotent; never rejects.
|
|
43
|
+
*/
|
|
44
|
+
stop(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Run a single cleanup pass and return how many publications were
|
|
47
|
+
* removed. Invoked by the scheduled loop, and directly by tests and
|
|
48
|
+
* one-shot tooling.
|
|
49
|
+
*
|
|
50
|
+
* Never rejects: a failing pass is logged and reported as `0`, so a
|
|
51
|
+
* database blip cannot kill the loop.
|
|
52
|
+
*/
|
|
53
|
+
runOnce(): Promise<number>;
|
|
54
|
+
private scheduleNext;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=outbox-cleanup-scheduler.d.ts.map
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var OutboxCleanupScheduler_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.OutboxCleanupScheduler = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const drain_1 = require("../shutdown/drain");
|
|
16
|
+
/**
|
|
17
|
+
* Periodically removes publications that have been `COMPLETED` longer
|
|
18
|
+
* than the configured retention window (C4).
|
|
19
|
+
*
|
|
20
|
+
* Under the default `UPDATE` completion mode a delivered publication
|
|
21
|
+
* stays as an audit row forever. The primitives to purge it have always
|
|
22
|
+
* existed on the operator API; what was missing was anything to run
|
|
23
|
+
* them on a schedule.
|
|
24
|
+
*
|
|
25
|
+
* Disabled unless `config.interval > 0`, in which case {@link start}
|
|
26
|
+
* never schedules the loop and says so once in the log.
|
|
27
|
+
*
|
|
28
|
+
* Deliberately bounded rather than issuing one `DELETE` over the whole
|
|
29
|
+
* retention window: it selects up to `batchSize` eligible publications
|
|
30
|
+
* with `findCompleted` and deletes them one at a time. That costs more
|
|
31
|
+
* round-trips, and buys two things worth more. A pass cannot turn into a
|
|
32
|
+
* single long transaction holding locks that writers need, which is the
|
|
33
|
+
* realistic hazard on the first pass after enabling cleanup on an
|
|
34
|
+
* existing deployment. And it uses only methods
|
|
35
|
+
* {@link EventPublicationRepository} already had, so it needs no SPI
|
|
36
|
+
* change and behaves identically for a third-party implementation.
|
|
37
|
+
*
|
|
38
|
+
* `CompletedEventPublications.purge(...)` stays what it was: the
|
|
39
|
+
* operator-facing one-shot for a deliberate bulk purge, where a single
|
|
40
|
+
* statement is what you want.
|
|
41
|
+
*/
|
|
42
|
+
let OutboxCleanupScheduler = OutboxCleanupScheduler_1 = class OutboxCleanupScheduler {
|
|
43
|
+
repository;
|
|
44
|
+
config;
|
|
45
|
+
logger = new common_1.Logger(OutboxCleanupScheduler_1.name);
|
|
46
|
+
running = false;
|
|
47
|
+
cleanupLoop = null;
|
|
48
|
+
/** The pass currently running, or `null` when idle. See {@link stop}. */
|
|
49
|
+
inFlightPass = null;
|
|
50
|
+
constructor(repository, config) {
|
|
51
|
+
this.repository = repository;
|
|
52
|
+
this.config = config;
|
|
53
|
+
}
|
|
54
|
+
/** Start the cleanup loop. Idempotent; a no-op when cleanup is disabled. */
|
|
55
|
+
start() {
|
|
56
|
+
if (this.running) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (this.config.interval <= 0) {
|
|
60
|
+
this.logger.log('OutboxCleanupScheduler disabled (interval = 0)');
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.running = true;
|
|
64
|
+
this.scheduleNext();
|
|
65
|
+
this.logger.log(`OutboxCleanupScheduler started (interval: ${this.config.interval}ms, ` +
|
|
66
|
+
`retention: ${this.config.retention}ms, batchSize: ${this.config.batchSize})`);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Stop the loop and drain the pass already in flight, bounded by
|
|
70
|
+
* `config.shutdownTimeout`. Idempotent; never rejects.
|
|
71
|
+
*/
|
|
72
|
+
async stop() {
|
|
73
|
+
this.running = false;
|
|
74
|
+
if (this.cleanupLoop !== null) {
|
|
75
|
+
clearTimeout(this.cleanupLoop);
|
|
76
|
+
this.cleanupLoop = null;
|
|
77
|
+
}
|
|
78
|
+
const inFlight = this.inFlightPass;
|
|
79
|
+
if (inFlight !== null) {
|
|
80
|
+
const drained = await (0, drain_1.drainWithTimeout)(inFlight, this.config.shutdownTimeout);
|
|
81
|
+
if (!drained) {
|
|
82
|
+
this.logger.warn(`OutboxCleanupScheduler drain timed out after ${this.config.shutdownTimeout}ms — ` +
|
|
83
|
+
'the in-flight pass was abandoned.');
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Run a single cleanup pass and return how many publications were
|
|
89
|
+
* removed. Invoked by the scheduled loop, and directly by tests and
|
|
90
|
+
* one-shot tooling.
|
|
91
|
+
*
|
|
92
|
+
* Never rejects: a failing pass is logged and reported as `0`, so a
|
|
93
|
+
* database blip cannot kill the loop.
|
|
94
|
+
*/
|
|
95
|
+
async runOnce() {
|
|
96
|
+
try {
|
|
97
|
+
const cutoff = new Date(Date.now() - this.config.retention);
|
|
98
|
+
const eligible = await this.repository.findCompleted({
|
|
99
|
+
olderThan: cutoff,
|
|
100
|
+
limit: this.config.batchSize,
|
|
101
|
+
});
|
|
102
|
+
let removed = 0;
|
|
103
|
+
for (const publication of eligible) {
|
|
104
|
+
await this.repository.delete(publication.id);
|
|
105
|
+
removed++;
|
|
106
|
+
}
|
|
107
|
+
if (removed > 0) {
|
|
108
|
+
this.logger.log(`Removed ${removed} completed publication(s) older than ${cutoff.toISOString()}`);
|
|
109
|
+
}
|
|
110
|
+
return removed;
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
this.logger.error('Cleanup pass failed', err instanceof Error ? err.stack : String(err));
|
|
114
|
+
return 0;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
scheduleNext() {
|
|
118
|
+
if (!this.running) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
this.cleanupLoop = setTimeout(() => {
|
|
122
|
+
this.cleanupLoop = null;
|
|
123
|
+
const pass = this.runOnce();
|
|
124
|
+
this.inFlightPass = pass;
|
|
125
|
+
void pass.finally(() => {
|
|
126
|
+
if (this.inFlightPass === pass) {
|
|
127
|
+
this.inFlightPass = null;
|
|
128
|
+
}
|
|
129
|
+
this.scheduleNext();
|
|
130
|
+
});
|
|
131
|
+
}, this.config.interval);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
exports.OutboxCleanupScheduler = OutboxCleanupScheduler;
|
|
135
|
+
exports.OutboxCleanupScheduler = OutboxCleanupScheduler = OutboxCleanupScheduler_1 = __decorate([
|
|
136
|
+
(0, common_1.Injectable)(),
|
|
137
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
138
|
+
], OutboxCleanupScheduler);
|
|
139
|
+
//# sourceMappingURL=outbox-cleanup-scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox-cleanup-scheduler.js","sourceRoot":"","sources":["../../src/recovery/outbox-cleanup-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -100,7 +100,18 @@ export interface EventPublicationRepository {
|
|
|
100
100
|
* strictly before `beforeDate`. Used by the staleness monitor.
|
|
101
101
|
*/
|
|
102
102
|
findStale(beforeDate: Date, statuses: PublicationStatus[]): Promise<EventPublication[]>;
|
|
103
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Find all completed publications, with optional pagination / cutoff,
|
|
105
|
+
* ordered by `completionDate` **oldest first**.
|
|
106
|
+
*
|
|
107
|
+
* The ordering is part of the contract because `limit` makes it one.
|
|
108
|
+
* A retention job asks for a bounded page and deletes it; if the page
|
|
109
|
+
* came back newest-first, a job that cannot keep up with the
|
|
110
|
+
* completion rate would delete only the recent rows and never reach
|
|
111
|
+
* the old ones, which is the exact opposite of what a retention window
|
|
112
|
+
* promises. Draining from the oldest end degrades correctly instead:
|
|
113
|
+
* falling behind shrinks the backlog, it does not strand its tail.
|
|
114
|
+
*/
|
|
104
115
|
findCompleted(options?: FindCompletedOptions): Promise<EventPublication[]>;
|
|
105
116
|
/**
|
|
106
117
|
* Find all incomplete publications (status other than `COMPLETED`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-publication-repository.js","sourceRoot":"","sources":["../../src/repository/event-publication-repository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"event-publication-repository.js","sourceRoot":"","sources":["../../src/repository/event-publication-repository.ts"],"names":[],"mappings":";;;AA4JA,kEAAkE;AACrD,QAAA,4BAA4B,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAC"}
|
|
@@ -122,6 +122,16 @@ let InMemoryEventPublicationRepository = class InMemoryEventPublicationRepositor
|
|
|
122
122
|
if (olderThan) {
|
|
123
123
|
result = result.filter((p) => p.completionDate !== null && p.completionDate < olderThan);
|
|
124
124
|
}
|
|
125
|
+
// Oldest first, per the SPI contract. Insertion order happened to be
|
|
126
|
+
// close enough until `limit` made the order a correctness property
|
|
127
|
+
// for the retention job. A publication still in `COMPLETED` without a
|
|
128
|
+
// completion date cannot be ordered, so it sorts last rather than
|
|
129
|
+
// being dropped.
|
|
130
|
+
result = [...result].sort((a, b) => {
|
|
131
|
+
const left = a.completionDate?.getTime() ?? Number.POSITIVE_INFINITY;
|
|
132
|
+
const right = b.completionDate?.getTime() ?? Number.POSITIVE_INFINITY;
|
|
133
|
+
return left - right;
|
|
134
|
+
});
|
|
125
135
|
const limit = options?.limit;
|
|
126
136
|
if (limit !== undefined) {
|
|
127
137
|
result = result.slice(0, limit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-repository.js","sourceRoot":"","sources":["../../src/testing/in-memory-repository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"in-memory-repository.js","sourceRoot":"","sources":["../../src/testing/in-memory-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -86,7 +86,8 @@ class PublishedEventsView {
|
|
|
86
86
|
this.predicates = predicates;
|
|
87
87
|
}
|
|
88
88
|
matching(fnOrGetter, expected) {
|
|
89
|
-
//
|
|
89
|
+
// `arguments.length` distinguishes the two overloads reliably,
|
|
90
|
+
// including when `expected` is intentionally passed as `undefined`.
|
|
90
91
|
const argCount = arguments.length;
|
|
91
92
|
const predicate = argCount > 1
|
|
92
93
|
? (event) => fnOrGetter(event) === expected
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"published-events.js","sourceRoot":"","sources":["../../src/testing/published-events.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA+D;AAE/D,6FAGoD;AACpD,wEAA2F;AAG3F;;;;;;;;;;;GAWG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAGP;IAEA;IAJnB,YAEmB,UAAsC,EAEtC,UAA2B;QAF3B,eAAU,GAAV,UAAU,CAA4B;QAEtC,eAAU,GAAV,UAAU,CAAiB;IAC3C,CAAC;IAEJ;;;;;OAKG;IACH,KAAK,CAAC,GAAG;QACP,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAmB,SAAkB;QACzC,OAAO,IAAI,mBAAmB,CAAI,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;SAChC,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC;IACvC,CAAC;CACF,CAAA;AAnCY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,2DAA4B,CAAC,CAAA;IAEpC,WAAA,IAAA,eAAM,EAAC,mCAAgB,CAAC,CAAA;;GAJhB,eAAe,CAmC3B;AAED;;;;;GAKG;AACH,MAAa,mBAAmB;IAEX;IACA;IACA;IACA;IAJnB,YACmB,QAA2C,EAC3C,UAA2B,EAC3B,SAAkB,EAClB,UAA8C;QAH9C,aAAQ,GAAR,QAAQ,CAAmC;QAC3C,eAAU,GAAV,UAAU,CAAiB;QAC3B,cAAS,GAAT,SAAS,CAAS;QAClB,eAAU,GAAV,UAAU,CAAoC;IAC9D,CAAC;IAWJ,QAAQ,CACN,UAAuD,EACvD,QAAY;QAEZ,
|
|
1
|
+
{"version":3,"file":"published-events.js","sourceRoot":"","sources":["../../src/testing/published-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retention policy for publications that reached `COMPLETED`.
|
|
3
|
+
*
|
|
4
|
+
* Under the default `UPDATE` completion mode a delivered publication
|
|
5
|
+
* stays in the table as an audit record, and nothing removes it. That is
|
|
6
|
+
* deliberate, but it means the table grows without bound unless someone
|
|
7
|
+
* purges it. This config puts that purge on a timer.
|
|
8
|
+
*
|
|
9
|
+
* Disabled unless you ask for it: `interval: 0` means the scheduler
|
|
10
|
+
* never schedules its loop, following the same "0 disables" convention
|
|
11
|
+
* as {@link StalenessConfig} and {@link OutboxRetryConfig}. It says so
|
|
12
|
+
* in the log on boot rather than staying quiet, so a half-configured
|
|
13
|
+
* policy is visible instead of silently inert.
|
|
14
|
+
*/
|
|
15
|
+
export interface OutboxCleanupConfig {
|
|
16
|
+
/**
|
|
17
|
+
* How often (ms) a purge pass runs. `0` disables cleanup entirely, in
|
|
18
|
+
* which case retention stays manual through
|
|
19
|
+
* `CompletedEventPublications.purge(...)`.
|
|
20
|
+
*/
|
|
21
|
+
readonly interval: number;
|
|
22
|
+
/**
|
|
23
|
+
* How long (ms) a publication is kept after completion. A pass removes
|
|
24
|
+
* only rows whose `completionDate` is older than this.
|
|
25
|
+
*
|
|
26
|
+
* `0` is allowed and means "no grace period": everything already
|
|
27
|
+
* `COMPLETED` at the moment of the pass is eligible. That is a
|
|
28
|
+
* reasonable choice when the row carries no audit value, and a poor
|
|
29
|
+
* one when it does, so it is not the default.
|
|
30
|
+
*/
|
|
31
|
+
readonly retention: number;
|
|
32
|
+
/**
|
|
33
|
+
* Maximum publications removed per pass.
|
|
34
|
+
*
|
|
35
|
+
* The bound is the point. A single unbounded `DELETE` across a mature
|
|
36
|
+
* table is one long transaction holding locks the writers need, and
|
|
37
|
+
* the first pass after enabling cleanup on an existing deployment is
|
|
38
|
+
* exactly when that table is at its largest. Passes are cheap and
|
|
39
|
+
* frequent, so a backlog drains over several of them instead.
|
|
40
|
+
*/
|
|
41
|
+
readonly batchSize: number;
|
|
42
|
+
/**
|
|
43
|
+
* How long (ms) `stop()` waits for an in-flight pass to finish before
|
|
44
|
+
* abandoning it. `0` disables the wait.
|
|
45
|
+
*
|
|
46
|
+
* Abandoning a pass is safe: deletion is per-publication, so an
|
|
47
|
+
* interrupted pass leaves the rows it had not reached yet, and the
|
|
48
|
+
* next pass picks them up.
|
|
49
|
+
*/
|
|
50
|
+
readonly shutdownTimeout: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Cleanup off; every other value is what it would use if switched on.
|
|
54
|
+
* Seven days of retention is a starting point rather than a
|
|
55
|
+
* recommendation: the right window depends on what the audit trail is
|
|
56
|
+
* for in a given deployment.
|
|
57
|
+
*/
|
|
58
|
+
export declare const DEFAULT_CLEANUP_CONFIG: OutboxCleanupConfig;
|
|
59
|
+
//# sourceMappingURL=cleanup-config.d.ts.map
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_CLEANUP_CONFIG = void 0;
|
|
4
|
+
const drain_1 = require("../shutdown/drain");
|
|
5
|
+
/**
|
|
6
|
+
* Cleanup off; every other value is what it would use if switched on.
|
|
7
|
+
* Seven days of retention is a starting point rather than a
|
|
8
|
+
* recommendation: the right window depends on what the audit trail is
|
|
9
|
+
* for in a given deployment.
|
|
10
|
+
*/
|
|
11
|
+
exports.DEFAULT_CLEANUP_CONFIG = {
|
|
12
|
+
interval: 0,
|
|
13
|
+
retention: 7 * 24 * 60 * 60 * 1000,
|
|
14
|
+
batchSize: 500,
|
|
15
|
+
shutdownTimeout: drain_1.DEFAULT_DRAIN_TIMEOUT_MS,
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=cleanup-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanup-config.js","sourceRoot":"","sources":["../../src/types/cleanup-config.ts"],"names":[],"mappings":";;;AAAA,6CAA6D;AAsD7D;;;;;GAKG;AACU,QAAA,sBAAsB,GAAwB;IACzD,QAAQ,EAAE,CAAC;IACX,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAClC,SAAS,EAAE,GAAG;IACd,eAAe,EAAE,gCAAwB;CAC1C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestjs-transactional/outbox",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Persistent Event Publication Registry for @nestjs-transactional — Spring Modulith equivalent (ORM-agnostic core)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "commonjs",
|
|
@@ -63,15 +63,16 @@
|
|
|
63
63
|
"@nestjs-transactional/core": "^1.0.0"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@nestjs/common": "^11.
|
|
67
|
-
"@nestjs/core": "^11.
|
|
68
|
-
"@nestjs/testing": "^11.
|
|
69
|
-
"@types/jest": "^
|
|
70
|
-
"
|
|
66
|
+
"@nestjs/common": "^11.2.3",
|
|
67
|
+
"@nestjs/core": "^11.2.3",
|
|
68
|
+
"@nestjs/testing": "^11.2.3",
|
|
69
|
+
"@types/jest": "^30.0.0",
|
|
70
|
+
"@types/node": "^22.20.1",
|
|
71
|
+
"jest": "^30.4.2",
|
|
71
72
|
"reflect-metadata": "^0.2.2",
|
|
72
73
|
"rxjs": "^7.8.1",
|
|
73
|
-
"ts-jest": "^29.
|
|
74
|
-
"typescript": "^
|
|
74
|
+
"ts-jest": "^29.4.12",
|
|
75
|
+
"typescript": "^6.0.3",
|
|
75
76
|
"@nestjs-transactional/core": "1.0.0"
|
|
76
77
|
},
|
|
77
78
|
"scripts": {
|
|
@@ -81,7 +82,7 @@
|
|
|
81
82
|
"test:watch": "jest --watch",
|
|
82
83
|
"test:cov": "jest --coverage",
|
|
83
84
|
"type-check": "tsc --noEmit",
|
|
84
|
-
"lint": "eslint
|
|
85
|
+
"lint": "eslint .",
|
|
85
86
|
"api:check": "api-extractor run && api-extractor run -c api-extractor.testing.json",
|
|
86
87
|
"api:update": "api-extractor run --local && api-extractor run --local -c api-extractor.testing.json",
|
|
87
88
|
"publish:check": "publint && attw --pack ."
|