pp-command-bus 1.5.0 → 2.0.1
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 +400 -1219
- package/dist/command-bus/command-bus.spec.js +138 -359
- package/dist/command-bus/command-bus.spec.js.map +1 -1
- package/dist/command-bus/command.d.ts +3 -4
- package/dist/command-bus/command.js +3 -32
- package/dist/command-bus/command.js.map +1 -1
- package/dist/command-bus/config/command-bus-config.d.ts +80 -21
- package/dist/command-bus/config/command-bus-config.js +104 -58
- package/dist/command-bus/config/command-bus-config.js.map +1 -1
- package/dist/command-bus/config/command-bus-config.spec.js +174 -100
- package/dist/command-bus/config/command-bus-config.spec.js.map +1 -1
- package/dist/command-bus/index.d.ts +41 -50
- package/dist/command-bus/index.js +143 -127
- package/dist/command-bus/index.js.map +1 -1
- package/dist/command-bus/interceptors/index.d.ts +5 -0
- package/dist/command-bus/interceptors/index.js +22 -0
- package/dist/command-bus/interceptors/index.js.map +1 -0
- package/dist/command-bus/interceptors/interceptor.interface.d.ts +35 -0
- package/dist/command-bus/interceptors/interceptor.interface.js +3 -0
- package/dist/command-bus/interceptors/interceptor.interface.js.map +1 -0
- package/dist/command-bus/interceptors/performance-interceptor.d.ts +24 -0
- package/dist/command-bus/interceptors/performance-interceptor.js +86 -0
- package/dist/command-bus/interceptors/performance-interceptor.js.map +1 -0
- package/dist/command-bus/interceptors/performance-interceptor.spec.js +124 -0
- package/dist/command-bus/interceptors/performance-interceptor.spec.js.map +1 -0
- package/dist/command-bus/logging/command-logger.d.ts +2 -0
- package/dist/command-bus/logging/command-logger.js +7 -0
- package/dist/command-bus/logging/command-logger.js.map +1 -1
- package/dist/command-bus/logging/command-logger.spec.js +36 -0
- package/dist/command-bus/logging/command-logger.spec.js.map +1 -1
- package/dist/command-bus/serialization/index.d.ts +6 -0
- package/dist/command-bus/serialization/index.js +9 -0
- package/dist/command-bus/serialization/index.js.map +1 -0
- package/dist/command-bus/serialization/msgpack-serializer.d.ts +26 -0
- package/dist/command-bus/serialization/msgpack-serializer.js +70 -0
- package/dist/command-bus/serialization/msgpack-serializer.js.map +1 -0
- package/dist/command-bus/serialization/msgpack-serializer.spec.js +223 -0
- package/dist/command-bus/serialization/msgpack-serializer.spec.js.map +1 -0
- package/dist/command-bus/serialization/serializer.interface.d.ts +21 -0
- package/dist/command-bus/serialization/serializer.interface.js +3 -0
- package/dist/command-bus/serialization/serializer.interface.js.map +1 -0
- package/dist/command-bus/transport/consumer-loop.d.ts +45 -0
- package/dist/command-bus/transport/consumer-loop.js +90 -0
- package/dist/command-bus/transport/consumer-loop.js.map +1 -0
- package/dist/command-bus/transport/consumer-loop.spec.js +216 -0
- package/dist/command-bus/transport/consumer-loop.spec.js.map +1 -0
- package/dist/command-bus/transport/index.d.ts +21 -0
- package/dist/command-bus/transport/index.js +23 -0
- package/dist/command-bus/transport/index.js.map +1 -0
- package/dist/command-bus/transport/message-processor.d.ts +70 -0
- package/dist/command-bus/transport/message-processor.js +158 -0
- package/dist/command-bus/transport/message-processor.js.map +1 -0
- package/dist/command-bus/transport/message-processor.spec.js +185 -0
- package/dist/command-bus/transport/message-processor.spec.js.map +1 -0
- package/dist/command-bus/transport/pending-recovery.d.ts +54 -0
- package/dist/command-bus/transport/pending-recovery.js +139 -0
- package/dist/command-bus/transport/pending-recovery.js.map +1 -0
- package/dist/command-bus/transport/pending-recovery.spec.js +176 -0
- package/dist/command-bus/transport/pending-recovery.spec.js.map +1 -0
- package/dist/command-bus/transport/redis-codec.d.ts +24 -0
- package/dist/command-bus/transport/redis-codec.js +33 -0
- package/dist/command-bus/transport/redis-codec.js.map +1 -0
- package/dist/command-bus/transport/redis-codec.spec.js +53 -0
- package/dist/command-bus/transport/redis-codec.spec.js.map +1 -0
- package/dist/command-bus/transport/redis-streams-transport.d.ts +94 -0
- package/dist/command-bus/transport/redis-streams-transport.js +143 -0
- package/dist/command-bus/transport/redis-streams-transport.js.map +1 -0
- package/dist/command-bus/transport/redis-streams-transport.spec.js +420 -0
- package/dist/command-bus/transport/redis-streams-transport.spec.js.map +1 -0
- package/dist/command-bus/transport/rpc-handler.d.ts +39 -0
- package/dist/command-bus/transport/rpc-handler.js +87 -0
- package/dist/command-bus/transport/rpc-handler.js.map +1 -0
- package/dist/command-bus/transport/rpc-handler.spec.js +157 -0
- package/dist/command-bus/transport/rpc-handler.spec.js.map +1 -0
- package/dist/command-bus/transport/stream-consumer.d.ts +91 -0
- package/dist/command-bus/transport/stream-consumer.js +182 -0
- package/dist/command-bus/transport/stream-consumer.js.map +1 -0
- package/dist/command-bus/transport/stream-consumer.spec.js +284 -0
- package/dist/command-bus/transport/stream-consumer.spec.js.map +1 -0
- package/dist/command-bus/transport/stream-producer.d.ts +23 -0
- package/dist/command-bus/transport/stream-producer.js +70 -0
- package/dist/command-bus/transport/stream-producer.js.map +1 -0
- package/dist/command-bus/transport/stream-producer.spec.js +125 -0
- package/dist/command-bus/transport/stream-producer.spec.js.map +1 -0
- package/dist/command-bus/transport/transport.interface.d.ts +87 -0
- package/dist/command-bus/transport/transport.interface.js +3 -0
- package/dist/command-bus/transport/transport.interface.js.map +1 -0
- package/dist/command-bus/types/index.d.ts +0 -84
- package/dist/examples/rpc.demo.js +1 -1
- package/dist/examples/rpc.demo.js.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/pp-command-bus-2.0.1.tgz +0 -0
- package/dist/shared/redis/connection-pool.d.ts +54 -0
- package/dist/shared/redis/connection-pool.js +123 -0
- package/dist/shared/redis/connection-pool.js.map +1 -0
- package/dist/shared/redis/connection-pool.spec.d.ts +1 -0
- package/dist/shared/redis/connection-pool.spec.js +114 -0
- package/dist/shared/redis/connection-pool.spec.js.map +1 -0
- package/dist/shared/redis/index.d.ts +5 -3
- package/dist/shared/redis/index.js +6 -4
- package/dist/shared/redis/index.js.map +1 -1
- package/dist/shared/redis/rpc-connection-pool.d.ts +61 -0
- package/dist/shared/redis/rpc-connection-pool.js +154 -0
- package/dist/shared/redis/rpc-connection-pool.js.map +1 -0
- package/dist/shared/redis/rpc-connection-pool.spec.d.ts +1 -0
- package/dist/shared/redis/rpc-connection-pool.spec.js +173 -0
- package/dist/shared/redis/rpc-connection-pool.spec.js.map +1 -0
- package/dist/shared/types.d.ts +0 -4
- package/dist/shared/utils/error-utils.d.ts +8 -0
- package/dist/shared/utils/error-utils.js +14 -0
- package/dist/shared/utils/error-utils.js.map +1 -0
- package/package.json +12 -12
- package/dist/command-bus/config/auto-config-optimizer.d.ts +0 -35
- package/dist/command-bus/config/auto-config-optimizer.js +0 -52
- package/dist/command-bus/config/auto-config-optimizer.js.map +0 -1
- package/dist/command-bus/config/auto-config-optimizer.spec.js +0 -42
- package/dist/command-bus/config/auto-config-optimizer.spec.js.map +0 -1
- package/dist/command-bus/job/index.d.ts +0 -6
- package/dist/command-bus/job/index.js +0 -15
- package/dist/command-bus/job/index.js.map +0 -1
- package/dist/command-bus/job/job-options-builder.d.ts +0 -21
- package/dist/command-bus/job/job-options-builder.js +0 -58
- package/dist/command-bus/job/job-options-builder.js.map +0 -1
- package/dist/command-bus/job/job-options-builder.spec.js +0 -156
- package/dist/command-bus/job/job-options-builder.spec.js.map +0 -1
- package/dist/command-bus/job/job-processor.d.ts +0 -39
- package/dist/command-bus/job/job-processor.js +0 -203
- package/dist/command-bus/job/job-processor.js.map +0 -1
- package/dist/command-bus/job/job-processor.spec.js +0 -436
- package/dist/command-bus/job/job-processor.spec.js.map +0 -1
- package/dist/command-bus/queue/index.d.ts +0 -5
- package/dist/command-bus/queue/index.js +0 -13
- package/dist/command-bus/queue/index.js.map +0 -1
- package/dist/command-bus/queue/queue-manager.d.ts +0 -56
- package/dist/command-bus/queue/queue-manager.js +0 -163
- package/dist/command-bus/queue/queue-manager.js.map +0 -1
- package/dist/command-bus/queue/queue-manager.spec.js +0 -371
- package/dist/command-bus/queue/queue-manager.spec.js.map +0 -1
- package/dist/command-bus/rpc/index.d.ts +0 -11
- package/dist/command-bus/rpc/index.js +0 -19
- package/dist/command-bus/rpc/index.js.map +0 -1
- package/dist/command-bus/rpc/payload-compression.service.d.ts +0 -50
- package/dist/command-bus/rpc/payload-compression.service.js +0 -215
- package/dist/command-bus/rpc/payload-compression.service.js.map +0 -1
- package/dist/command-bus/rpc/payload-compression.service.spec.js +0 -376
- package/dist/command-bus/rpc/payload-compression.service.spec.js.map +0 -1
- package/dist/command-bus/rpc/rpc-coordinator.d.ts +0 -96
- package/dist/command-bus/rpc/rpc-coordinator.js +0 -500
- package/dist/command-bus/rpc/rpc-coordinator.js.map +0 -1
- package/dist/command-bus/rpc/rpc-coordinator.spec.js +0 -621
- package/dist/command-bus/rpc/rpc-coordinator.spec.js.map +0 -1
- package/dist/command-bus/rpc/rpc-job-cancellation.service.d.ts +0 -82
- package/dist/command-bus/rpc/rpc-job-cancellation.service.js +0 -180
- package/dist/command-bus/rpc/rpc-job-cancellation.service.js.map +0 -1
- package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js +0 -286
- package/dist/command-bus/rpc/rpc-job-cancellation.service.spec.js.map +0 -1
- package/dist/command-bus/worker/index.d.ts +0 -10
- package/dist/command-bus/worker/index.js +0 -19
- package/dist/command-bus/worker/index.js.map +0 -1
- package/dist/command-bus/worker/worker-benchmark.d.ts +0 -71
- package/dist/command-bus/worker/worker-benchmark.js +0 -202
- package/dist/command-bus/worker/worker-benchmark.js.map +0 -1
- package/dist/command-bus/worker/worker-benchmark.spec.js +0 -310
- package/dist/command-bus/worker/worker-benchmark.spec.js.map +0 -1
- package/dist/command-bus/worker/worker-metrics-collector.d.ts +0 -98
- package/dist/command-bus/worker/worker-metrics-collector.js +0 -242
- package/dist/command-bus/worker/worker-metrics-collector.js.map +0 -1
- package/dist/command-bus/worker/worker-orchestrator.d.ts +0 -70
- package/dist/command-bus/worker/worker-orchestrator.js +0 -339
- package/dist/command-bus/worker/worker-orchestrator.js.map +0 -1
- package/dist/command-bus/worker/worker-orchestrator.spec.js +0 -712
- package/dist/command-bus/worker/worker-orchestrator.spec.js.map +0 -1
- package/dist/examples/auto-config.demo.d.ts +0 -9
- package/dist/examples/auto-config.demo.js +0 -106
- package/dist/examples/auto-config.demo.js.map +0 -1
- package/dist/examples/rpc-compression.demo.d.ts +0 -5
- package/dist/examples/rpc-compression.demo.js +0 -358
- package/dist/examples/rpc-compression.demo.js.map +0 -1
- package/dist/examples/rpc-resilience.demo.d.ts +0 -15
- package/dist/examples/rpc-resilience.demo.js +0 -233
- package/dist/examples/rpc-resilience.demo.js.map +0 -1
- package/dist/pp-command-bus-1.5.0.tgz +0 -0
- package/dist/shared/config/base-config.d.ts +0 -54
- package/dist/shared/config/base-config.js +0 -114
- package/dist/shared/config/base-config.js.map +0 -1
- package/dist/shared/config/base-config.spec.js +0 -204
- package/dist/shared/config/base-config.spec.js.map +0 -1
- package/dist/shared/config/index.d.ts +0 -1
- package/dist/shared/config/index.js +0 -9
- package/dist/shared/config/index.js.map +0 -1
- package/dist/shared/redis/redis-connection-factory.d.ts +0 -66
- package/dist/shared/redis/redis-connection-factory.js +0 -113
- package/dist/shared/redis/redis-connection-factory.js.map +0 -1
- /package/dist/command-bus/{config/auto-config-optimizer.spec.d.ts → interceptors/performance-interceptor.spec.d.ts} +0 -0
- /package/dist/command-bus/{job/job-options-builder.spec.d.ts → serialization/msgpack-serializer.spec.d.ts} +0 -0
- /package/dist/command-bus/{job/job-processor.spec.d.ts → transport/consumer-loop.spec.d.ts} +0 -0
- /package/dist/command-bus/{queue/queue-manager.spec.d.ts → transport/message-processor.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/payload-compression.service.spec.d.ts → transport/pending-recovery.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/rpc-coordinator.spec.d.ts → transport/redis-codec.spec.d.ts} +0 -0
- /package/dist/command-bus/{rpc/rpc-job-cancellation.service.spec.d.ts → transport/redis-streams-transport.spec.d.ts} +0 -0
- /package/dist/command-bus/{worker/worker-benchmark.spec.d.ts → transport/rpc-handler.spec.d.ts} +0 -0
- /package/dist/command-bus/{worker/worker-orchestrator.spec.d.ts → transport/stream-consumer.spec.d.ts} +0 -0
- /package/dist/{shared/config/base-config.spec.d.ts → command-bus/transport/stream-producer.spec.d.ts} +0 -0
|
@@ -3,12 +3,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const os_1 = require("os");
|
|
6
7
|
const command_bus_config_1 = __importDefault(require("./command-bus-config"));
|
|
7
8
|
const logger_1 = require("../../shared/logging/logger");
|
|
9
|
+
/** Default concurrency — 60 × availableParallelism() (I/O-bound workload) */
|
|
10
|
+
const DEFAULT_CONCURRENCY = 60 * (0, os_1.availableParallelism)();
|
|
8
11
|
describe('CommandBusConfig', () => {
|
|
9
12
|
const originalEnv = process.env;
|
|
10
13
|
beforeEach(() => {
|
|
11
|
-
// Reset zmiennych środowiskowych
|
|
12
14
|
process.env = Object.assign({}, originalEnv);
|
|
13
15
|
});
|
|
14
16
|
afterEach(() => {
|
|
@@ -22,61 +24,40 @@ describe('CommandBusConfig', () => {
|
|
|
22
24
|
expect(config.redisUrl).toBe('redis://localhost:6379');
|
|
23
25
|
expect(config.logger).toBeInstanceOf(logger_1.Logger);
|
|
24
26
|
expect(config.logLevel).toBe('log');
|
|
25
|
-
|
|
26
|
-
expect(config.
|
|
27
|
-
expect(config.concurrency).
|
|
28
|
-
expect(config.maxAttempts).toBe(
|
|
29
|
-
expect(config.backoffDelay).toBe(2000);
|
|
30
|
-
expect(config.queueMode).toBe('fifo');
|
|
27
|
+
expect(config.redisRetryDelay).toBe(5000);
|
|
28
|
+
expect(config.redisMaxRetries).toBe(0);
|
|
29
|
+
expect(config.concurrency).toBe(DEFAULT_CONCURRENCY);
|
|
30
|
+
expect(config.maxAttempts).toBe(3);
|
|
31
31
|
expect(config.commandLog).toBe('');
|
|
32
|
+
expect(config.poolSize).toBe(2 * (0, os_1.availableParallelism)());
|
|
33
|
+
expect(config.maxConcurrentRpc).toBe(50);
|
|
34
|
+
expect(config.batchSize).toBe(100);
|
|
35
|
+
expect(config.claimTimeout).toBe(30000);
|
|
36
|
+
expect(config.maxRetained).toBe(10000);
|
|
32
37
|
});
|
|
33
|
-
it('powinno wczytać konfigurację ze zmiennych środowiskowych
|
|
38
|
+
it('powinno wczytać konfigurację ze zmiennych środowiskowych', () => {
|
|
34
39
|
// Given
|
|
35
40
|
process.env.REDIS_URL = 'redis://dragonfly:6380';
|
|
36
41
|
process.env.COMMAND_BUS_CONCURRENCY = '10';
|
|
37
42
|
process.env.COMMAND_BUS_MAX_ATTEMPTS = '5';
|
|
38
|
-
process.env.COMMAND_BUS_BACKOFF_DELAY = '5000';
|
|
39
|
-
process.env.COMMAND_BUS_QUEUE_MODE = 'lifo';
|
|
40
43
|
process.env.COMMAND_BUS_LOG = '/var/log/commands';
|
|
44
|
+
process.env.COMMAND_BUS_POOL_SIZE = '8';
|
|
45
|
+
process.env.COMMAND_BUS_MAX_CONCURRENT_RPC = '100';
|
|
46
|
+
process.env.COMMAND_BUS_BATCH_SIZE = '25';
|
|
47
|
+
process.env.COMMAND_BUS_CLAIM_TIMEOUT = '60000';
|
|
48
|
+
process.env.COMMAND_BUS_MAX_RETAINED = '50000';
|
|
41
49
|
// When
|
|
42
50
|
const config = new command_bus_config_1.default();
|
|
43
51
|
// Then
|
|
44
52
|
expect(config.redisUrl).toBe('redis://dragonfly:6380');
|
|
45
53
|
expect(config.concurrency).toBe(10);
|
|
46
54
|
expect(config.maxAttempts).toBe(5);
|
|
47
|
-
expect(config.backoffDelay).toBe(5000);
|
|
48
|
-
expect(config.queueMode).toBe('lifo');
|
|
49
55
|
expect(config.commandLog).toBe('/var/log/commands');
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
process.env.EVENT_BUS_BACKOFF_DELAY = '3000';
|
|
56
|
-
process.env.EVENT_BUS_QUEUE_MODE = 'lifo';
|
|
57
|
-
process.env.EVENT_BUS_LOG = '/old/log/path';
|
|
58
|
-
// When
|
|
59
|
-
const config = new command_bus_config_1.default();
|
|
60
|
-
// Then
|
|
61
|
-
expect(config.concurrency).toBe(8);
|
|
62
|
-
expect(config.maxAttempts).toBe(4);
|
|
63
|
-
expect(config.backoffDelay).toBe(3000);
|
|
64
|
-
expect(config.queueMode).toBe('lifo');
|
|
65
|
-
expect(config.commandLog).toBe('/old/log/path');
|
|
66
|
-
});
|
|
67
|
-
it('powinno preferować nowe nazwy zmiennych nad starymi', () => {
|
|
68
|
-
// Given
|
|
69
|
-
// Stare nazwy
|
|
70
|
-
process.env.EVENT_BUS_CONCURRENCY = '8';
|
|
71
|
-
process.env.EVENT_BUS_MAX_ATTEMPTS = '4';
|
|
72
|
-
// Nowe nazwy (powinny mieć priorytet)
|
|
73
|
-
process.env.COMMAND_BUS_CONCURRENCY = '15';
|
|
74
|
-
process.env.COMMAND_BUS_MAX_ATTEMPTS = '7';
|
|
75
|
-
// When
|
|
76
|
-
const config = new command_bus_config_1.default();
|
|
77
|
-
// Then
|
|
78
|
-
expect(config.concurrency).toBe(15);
|
|
79
|
-
expect(config.maxAttempts).toBe(7);
|
|
56
|
+
expect(config.poolSize).toBe(8);
|
|
57
|
+
expect(config.maxConcurrentRpc).toBe(100);
|
|
58
|
+
expect(config.batchSize).toBe(25);
|
|
59
|
+
expect(config.claimTimeout).toBe(60000);
|
|
60
|
+
expect(config.maxRetained).toBe(50000);
|
|
80
61
|
});
|
|
81
62
|
it('powinno nadpisać wartości przez parametry konstruktora', () => {
|
|
82
63
|
// Given
|
|
@@ -92,96 +73,178 @@ describe('CommandBusConfig', () => {
|
|
|
92
73
|
logger: customLogger,
|
|
93
74
|
concurrency: 20,
|
|
94
75
|
maxAttempts: 10,
|
|
95
|
-
backoffDelay: 10000,
|
|
96
|
-
queueMode: 'lifo',
|
|
97
76
|
commandLog: '/custom/log/path',
|
|
77
|
+
poolSize: 4,
|
|
78
|
+
maxConcurrentRpc: 25,
|
|
79
|
+
batchSize: 50,
|
|
80
|
+
claimTimeout: 15000,
|
|
81
|
+
maxRetained: 5000,
|
|
98
82
|
});
|
|
99
83
|
// Then
|
|
100
84
|
expect(config.redisUrl).toBe('redis://custom:6379');
|
|
101
85
|
expect(config.logger).toBe(customLogger);
|
|
102
86
|
expect(config.concurrency).toBe(20);
|
|
103
87
|
expect(config.maxAttempts).toBe(10);
|
|
104
|
-
expect(config.backoffDelay).toBe(10000);
|
|
105
|
-
expect(config.queueMode).toBe('lifo');
|
|
106
88
|
expect(config.commandLog).toBe('/custom/log/path');
|
|
89
|
+
expect(config.poolSize).toBe(4);
|
|
90
|
+
expect(config.maxConcurrentRpc).toBe(25);
|
|
91
|
+
expect(config.batchSize).toBe(50);
|
|
92
|
+
expect(config.claimTimeout).toBe(15000);
|
|
93
|
+
expect(config.maxRetained).toBe(5000);
|
|
107
94
|
});
|
|
108
|
-
it('powinno
|
|
95
|
+
it('powinno używać domyślnej wartości przy nieprawidłowym parsowaniu', () => {
|
|
109
96
|
// Given
|
|
110
97
|
process.env.COMMAND_BUS_CONCURRENCY = 'invalid';
|
|
111
98
|
process.env.COMMAND_BUS_MAX_ATTEMPTS = 'not-a-number';
|
|
112
|
-
process.env.COMMAND_BUS_BACKOFF_DELAY = '';
|
|
113
99
|
// When
|
|
114
100
|
const config = new command_bus_config_1.default();
|
|
115
|
-
// Then
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
expect(config.concurrency).toBe(1); // Fallback value z parseIntWithDefault
|
|
119
|
-
expect(config.maxAttempts).toBe(1);
|
|
120
|
-
expect(config.backoffDelay).toBe(2000);
|
|
101
|
+
// Then — parseIntWithDefault zwraca fallback
|
|
102
|
+
expect(config.concurrency).toBe(DEFAULT_CONCURRENCY);
|
|
103
|
+
expect(config.maxAttempts).toBe(3);
|
|
121
104
|
});
|
|
122
|
-
it('powinno
|
|
105
|
+
it('powinno preferować params nad env', () => {
|
|
123
106
|
// Given
|
|
124
|
-
process.env.
|
|
107
|
+
process.env.COMMAND_BUS_CONCURRENCY = '50';
|
|
125
108
|
// When
|
|
126
|
-
const config = new command_bus_config_1.default();
|
|
127
|
-
// Then
|
|
128
|
-
expect(config.
|
|
109
|
+
const config = new command_bus_config_1.default({ concurrency: 200 });
|
|
110
|
+
// Then
|
|
111
|
+
expect(config.concurrency).toBe(200);
|
|
129
112
|
});
|
|
130
|
-
|
|
131
|
-
describe('auto-optymalizacja', () => {
|
|
132
|
-
it('powinno używać auto-optymalizacji domyślnie', () => {
|
|
113
|
+
it('powinno nadpisać logLevel przez parametry i utworzyć odpowiedni logger', () => {
|
|
133
114
|
// When
|
|
134
|
-
const config = new command_bus_config_1.default();
|
|
115
|
+
const config = new command_bus_config_1.default({ logLevel: 'error' });
|
|
135
116
|
// Then
|
|
136
|
-
expect(config.
|
|
137
|
-
expect(config.
|
|
117
|
+
expect(config.logLevel).toBe('error');
|
|
118
|
+
expect(config.logger).toBeInstanceOf(logger_1.Logger);
|
|
138
119
|
});
|
|
139
|
-
|
|
120
|
+
});
|
|
121
|
+
describe('getRedisOptions', () => {
|
|
122
|
+
it('powinno zwrócić opcje połączenia Redis z URL', () => {
|
|
140
123
|
// Given
|
|
141
|
-
|
|
124
|
+
const config = new command_bus_config_1.default({
|
|
125
|
+
redisUrl: 'redis://user:pass@dragonfly.example.com:6380/0',
|
|
126
|
+
});
|
|
142
127
|
// When
|
|
143
|
-
const
|
|
128
|
+
const options = config.getRedisOptions();
|
|
144
129
|
// Then
|
|
145
|
-
expect(
|
|
146
|
-
expect(
|
|
130
|
+
expect(options.host).toBe('dragonfly.example.com');
|
|
131
|
+
expect(options.port).toBe(6380);
|
|
132
|
+
expect(options.username).toBe('user');
|
|
133
|
+
expect(options.password).toBe('pass');
|
|
134
|
+
expect(options.db).toBe(0);
|
|
135
|
+
expect(options.retryStrategy).toBeInstanceOf(Function);
|
|
147
136
|
});
|
|
148
|
-
it('powinno
|
|
137
|
+
it('powinno obsłużyć URL bez autoryzacji', () => {
|
|
149
138
|
// Given
|
|
150
|
-
|
|
139
|
+
const config = new command_bus_config_1.default({
|
|
140
|
+
redisUrl: 'redis://localhost:6379',
|
|
141
|
+
});
|
|
151
142
|
// When
|
|
152
|
-
const
|
|
143
|
+
const options = config.getRedisOptions();
|
|
153
144
|
// Then
|
|
154
|
-
expect(
|
|
155
|
-
expect(
|
|
145
|
+
expect(options.host).toBe('localhost');
|
|
146
|
+
expect(options.port).toBe(6379);
|
|
147
|
+
expect(options.username).toBeUndefined();
|
|
148
|
+
expect(options.password).toBeUndefined();
|
|
149
|
+
expect(options.retryStrategy).toBeInstanceOf(Function);
|
|
156
150
|
});
|
|
157
|
-
it('powinno
|
|
151
|
+
it('powinno obsłużyć URL z bazą danych', () => {
|
|
152
|
+
// Given
|
|
153
|
+
const config = new command_bus_config_1.default({
|
|
154
|
+
redisUrl: 'redis://localhost:6379/2',
|
|
155
|
+
});
|
|
158
156
|
// When
|
|
159
|
-
const
|
|
157
|
+
const options = config.getRedisOptions();
|
|
160
158
|
// Then
|
|
161
|
-
expect(
|
|
162
|
-
expect(
|
|
159
|
+
expect(options.host).toBe('localhost');
|
|
160
|
+
expect(options.port).toBe(6379);
|
|
161
|
+
expect(options.db).toBe(2);
|
|
162
|
+
expect(options.retryStrategy).toBeInstanceOf(Function);
|
|
163
163
|
});
|
|
164
|
-
|
|
164
|
+
});
|
|
165
|
+
describe('retryStrategy', () => {
|
|
166
|
+
it('powinno używać domyślnego opóźnienia 5000ms', () => {
|
|
165
167
|
// Given
|
|
166
|
-
|
|
168
|
+
const config = new command_bus_config_1.default();
|
|
169
|
+
const options = config.getRedisOptions();
|
|
170
|
+
const retryStrategy = options.retryStrategy;
|
|
167
171
|
// When
|
|
168
|
-
const
|
|
172
|
+
const delay = retryStrategy(1);
|
|
169
173
|
// Then
|
|
170
|
-
expect(
|
|
174
|
+
expect(delay).toBe(5000);
|
|
171
175
|
});
|
|
172
|
-
it('powinno używać
|
|
176
|
+
it('powinno używać konfigurowalnego opóźnienia z env', () => {
|
|
177
|
+
// Given
|
|
178
|
+
process.env.REDIS_RETRY_DELAY = '10000';
|
|
179
|
+
const config = new command_bus_config_1.default();
|
|
180
|
+
const options = config.getRedisOptions();
|
|
181
|
+
const retryStrategy = options.retryStrategy;
|
|
173
182
|
// When
|
|
174
|
-
const
|
|
183
|
+
const delay = retryStrategy(1);
|
|
175
184
|
// Then
|
|
176
|
-
expect(
|
|
177
|
-
expect(config.concurrency).toBe(1); // Domyślna wartość
|
|
185
|
+
expect(delay).toBe(10000);
|
|
178
186
|
});
|
|
179
|
-
it('powinno używać
|
|
187
|
+
it('powinno używać konfigurowalnego opóźnienia z parametrów', () => {
|
|
188
|
+
// Given
|
|
189
|
+
const config = new command_bus_config_1.default({
|
|
190
|
+
redisRetryDelay: 3000,
|
|
191
|
+
});
|
|
192
|
+
const options = config.getRedisOptions();
|
|
193
|
+
const retryStrategy = options.retryStrategy;
|
|
180
194
|
// When
|
|
181
|
-
const
|
|
195
|
+
const delay = retryStrategy(1);
|
|
182
196
|
// Then
|
|
183
|
-
expect(
|
|
184
|
-
|
|
197
|
+
expect(delay).toBe(3000);
|
|
198
|
+
});
|
|
199
|
+
it('powinno zwracać stałe opóźnienie niezależnie od liczby prób', () => {
|
|
200
|
+
// Given
|
|
201
|
+
const config = new command_bus_config_1.default({
|
|
202
|
+
redisRetryDelay: 5000,
|
|
203
|
+
});
|
|
204
|
+
const options = config.getRedisOptions();
|
|
205
|
+
const retryStrategy = options.retryStrategy;
|
|
206
|
+
// When & Then
|
|
207
|
+
expect(retryStrategy(1)).toBe(5000);
|
|
208
|
+
expect(retryStrategy(5)).toBe(5000);
|
|
209
|
+
expect(retryStrategy(10)).toBe(5000);
|
|
210
|
+
expect(retryStrategy(100)).toBe(5000);
|
|
211
|
+
});
|
|
212
|
+
it('powinno zatrzymać reconnect po przekroczeniu max retries', () => {
|
|
213
|
+
// Given
|
|
214
|
+
const config = new command_bus_config_1.default({
|
|
215
|
+
redisRetryDelay: 5000,
|
|
216
|
+
redisMaxRetries: 3,
|
|
217
|
+
});
|
|
218
|
+
const options = config.getRedisOptions();
|
|
219
|
+
const retryStrategy = options.retryStrategy;
|
|
220
|
+
// When & Then
|
|
221
|
+
expect(retryStrategy(1)).toBe(5000);
|
|
222
|
+
expect(retryStrategy(2)).toBe(5000);
|
|
223
|
+
expect(retryStrategy(3)).toBe(5000);
|
|
224
|
+
expect(retryStrategy(4)).toBeNull();
|
|
225
|
+
});
|
|
226
|
+
it('powinno używać konfigurowalnego max retries z env', () => {
|
|
227
|
+
// Given
|
|
228
|
+
process.env.REDIS_MAX_RETRIES = '5';
|
|
229
|
+
const config = new command_bus_config_1.default();
|
|
230
|
+
const options = config.getRedisOptions();
|
|
231
|
+
const retryStrategy = options.retryStrategy;
|
|
232
|
+
// When & Then
|
|
233
|
+
expect(retryStrategy(5)).toBe(5000);
|
|
234
|
+
expect(retryStrategy(6)).toBeNull();
|
|
235
|
+
});
|
|
236
|
+
it('powinno kontynuować reconnect w nieskończoność gdy max retries = 0', () => {
|
|
237
|
+
// Given
|
|
238
|
+
const config = new command_bus_config_1.default({
|
|
239
|
+
redisRetryDelay: 5000,
|
|
240
|
+
redisMaxRetries: 0,
|
|
241
|
+
});
|
|
242
|
+
const options = config.getRedisOptions();
|
|
243
|
+
const retryStrategy = options.retryStrategy;
|
|
244
|
+
// When & Then
|
|
245
|
+
expect(retryStrategy(1)).toBe(5000);
|
|
246
|
+
expect(retryStrategy(100)).toBe(5000);
|
|
247
|
+
expect(retryStrategy(1000)).toBe(5000);
|
|
185
248
|
});
|
|
186
249
|
});
|
|
187
250
|
describe('walidacja', () => {
|
|
@@ -192,6 +255,10 @@ describe('CommandBusConfig', () => {
|
|
|
192
255
|
// When & Then
|
|
193
256
|
expect(() => new command_bus_config_1.default()).not.toThrow();
|
|
194
257
|
});
|
|
258
|
+
it('powinno rzucić błąd przy nieprawidłowym URL Redis', () => {
|
|
259
|
+
// When & Then
|
|
260
|
+
expect(() => new command_bus_config_1.default({ redisUrl: 'invalid-url' })).toThrow('Invalid Redis URL');
|
|
261
|
+
});
|
|
195
262
|
it('powinno rzucić błąd przy nieprawidłowej liczbie workerów', () => {
|
|
196
263
|
// Given
|
|
197
264
|
process.env.COMMAND_BUS_CONCURRENCY = '0';
|
|
@@ -204,18 +271,25 @@ describe('CommandBusConfig', () => {
|
|
|
204
271
|
// When & Then
|
|
205
272
|
expect(() => new command_bus_config_1.default()).toThrow('maxAttempts must be at least 1');
|
|
206
273
|
});
|
|
207
|
-
it('powinno rzucić błąd przy zbyt małym
|
|
208
|
-
// Given
|
|
209
|
-
process.env.COMMAND_BUS_BACKOFF_DELAY = '99';
|
|
274
|
+
it('powinno rzucić błąd przy zbyt małym poolSize', () => {
|
|
210
275
|
// When & Then
|
|
211
|
-
expect(() => new command_bus_config_1.default()).toThrow('
|
|
276
|
+
expect(() => new command_bus_config_1.default({ poolSize: 0 })).toThrow('poolSize must be at least 1');
|
|
212
277
|
});
|
|
213
|
-
it('powinno rzucić błąd przy
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
|
|
278
|
+
it('powinno rzucić błąd przy zbyt małym maxConcurrentRpc', () => {
|
|
279
|
+
// When & Then
|
|
280
|
+
expect(() => new command_bus_config_1.default({ maxConcurrentRpc: 0 })).toThrow('maxConcurrentRpc must be at least 1');
|
|
281
|
+
});
|
|
282
|
+
it('powinno rzucić błąd przy zbyt małym batchSize', () => {
|
|
283
|
+
// When & Then
|
|
284
|
+
expect(() => new command_bus_config_1.default({ batchSize: 0 })).toThrow('batchSize must be at least 1');
|
|
285
|
+
});
|
|
286
|
+
it('powinno rzucić błąd przy zbyt małym claimTimeout', () => {
|
|
287
|
+
// When & Then
|
|
288
|
+
expect(() => new command_bus_config_1.default({ claimTimeout: 500 })).toThrow('claimTimeout must be at least 1000ms');
|
|
289
|
+
});
|
|
290
|
+
it('powinno rzucić błąd przy zbyt małym maxRetained', () => {
|
|
217
291
|
// When & Then
|
|
218
|
-
expect(() =>
|
|
292
|
+
expect(() => new command_bus_config_1.default({ maxRetained: 50 })).toThrow('maxRetained must be at least 100');
|
|
219
293
|
});
|
|
220
294
|
});
|
|
221
295
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-bus-config.spec.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-bus-config.spec.js","sourceRoot":"","sources":["../../../src/command-bus/config/command-bus-config.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
import type Command from './command';
|
|
2
2
|
import type CommandBusConfig from './config/command-bus-config';
|
|
3
3
|
/**
|
|
4
|
-
* Command Bus
|
|
4
|
+
* Command Bus oparty na Redis Streams + DragonflyDB
|
|
5
|
+
*
|
|
5
6
|
* Obsługuje komendy w relacji 1:1 (jedna komenda = jeden handler)
|
|
7
|
+
* API: dispatch(), dispatchBatch(), call(), handle(), close()
|
|
8
|
+
*
|
|
9
|
+
* Technologie:
|
|
10
|
+
* - Redis Streams (XADD/XREADGROUP) — natywny transport
|
|
11
|
+
* - MessagePack — binarna serializacja z obsługą Date
|
|
12
|
+
* - LPUSH/BRPOP — point-to-point RPC
|
|
13
|
+
* - Connection pool z round-robin — wielowątkowy DragonflyDB
|
|
6
14
|
*/
|
|
7
15
|
export default class CommandBus {
|
|
8
16
|
private config;
|
|
9
17
|
/**
|
|
10
|
-
* Handlery komend
|
|
18
|
+
* Handlery komend — tylko jeden per typ komendy
|
|
11
19
|
*/
|
|
12
20
|
private commandHandlers;
|
|
13
21
|
/**
|
|
@@ -15,88 +23,71 @@ export default class CommandBus {
|
|
|
15
23
|
*/
|
|
16
24
|
private logger;
|
|
17
25
|
/**
|
|
18
|
-
*
|
|
26
|
+
* Serializer (MessagePack z obsługą Date)
|
|
19
27
|
*/
|
|
20
|
-
private
|
|
28
|
+
private serializer;
|
|
21
29
|
/**
|
|
22
|
-
*
|
|
30
|
+
* Transport (Redis Streams)
|
|
23
31
|
*/
|
|
24
|
-
private
|
|
32
|
+
private transport;
|
|
25
33
|
/**
|
|
26
|
-
*
|
|
34
|
+
* Pula połączeń Redis (round-robin, non-blocking)
|
|
27
35
|
*/
|
|
28
|
-
private
|
|
36
|
+
private connectionPool;
|
|
29
37
|
/**
|
|
30
|
-
*
|
|
38
|
+
* Pula połączeń RPC (bounded, lazy, blocking BRPOP)
|
|
31
39
|
*/
|
|
32
|
-
private
|
|
40
|
+
private rpcConnectionPool;
|
|
33
41
|
/**
|
|
34
|
-
*
|
|
35
|
-
*/
|
|
36
|
-
private jobOptionsBuilder;
|
|
37
|
-
/**
|
|
38
|
-
* CommandLogger - opcjonalny logger komend do plików
|
|
42
|
+
* CommandLogger — opcjonalny logger komend do plików
|
|
39
43
|
*/
|
|
40
44
|
private commandLogger?;
|
|
41
45
|
/**
|
|
42
|
-
*
|
|
43
|
-
*/
|
|
44
|
-
private queueRedisConnection;
|
|
45
|
-
/**
|
|
46
|
-
* Połączenie Redis dla WorkerOrchestrator
|
|
47
|
-
*/
|
|
48
|
-
private workerRedisConnection;
|
|
49
|
-
/**
|
|
50
|
-
* Połączenie Redis dla RpcCoordinator
|
|
51
|
-
*/
|
|
52
|
-
private rpcRedisConnection;
|
|
53
|
-
/**
|
|
54
|
-
* PayloadCompressionService - współdzielony serwis kompresji
|
|
46
|
+
* Interceptor wydajności - mierzy czas wykonania handlerów
|
|
55
47
|
*/
|
|
56
|
-
private
|
|
48
|
+
private readonly performanceInterceptor;
|
|
57
49
|
/**
|
|
58
|
-
*
|
|
50
|
+
* Promises z transport.consume() — do graceful shutdown
|
|
59
51
|
*/
|
|
60
|
-
private
|
|
52
|
+
private readonly consumePromises;
|
|
61
53
|
constructor(config: CommandBusConfig);
|
|
62
54
|
/**
|
|
63
|
-
* Wysyła komendę do
|
|
64
|
-
*
|
|
65
|
-
*
|
|
55
|
+
* Wysyła komendę do strumienia (fire-and-forget)
|
|
56
|
+
* XADD = 1 natywne polecenie Redis
|
|
57
|
+
*
|
|
66
58
|
* @param command - Komenda do wysłania
|
|
67
59
|
*/
|
|
68
60
|
dispatch(command: Command): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Wysyła wiele komend naraz z użyciem pipelining
|
|
63
|
+
* DragonflyDB przetwarza pipeline równolegle na wielu wątkach
|
|
64
|
+
*
|
|
65
|
+
* @param commands - Tablica komend do wysłania
|
|
66
|
+
*/
|
|
67
|
+
dispatchBatch(commands: Command[]): Promise<void>;
|
|
69
68
|
/**
|
|
70
69
|
* Rejestruje handler dla komendy
|
|
71
|
-
*
|
|
70
|
+
*
|
|
72
71
|
* @param commandDefinition - Definicja komendy (klasa)
|
|
73
72
|
* @param handler - Handler do obsługi komendy
|
|
74
73
|
*/
|
|
75
|
-
handle<T extends Command>(commandDefinition: new (...args:
|
|
74
|
+
handle<T extends Command>(commandDefinition: new (...args: never[]) => T, handler: (command: T) => unknown | Promise<unknown>): void;
|
|
76
75
|
/**
|
|
77
76
|
* Synchroniczne wywołanie komendy z oczekiwaniem na wynik (RPC)
|
|
78
|
-
* Request przez
|
|
79
|
-
* Automatycznie kompresuje dane jeśli przekraczają threshold
|
|
77
|
+
* Request przez Redis Streams, odpowiedź przez LPUSH/BRPOP
|
|
80
78
|
*
|
|
81
|
-
* Flow
|
|
82
|
-
* 1.
|
|
83
|
-
* 2.
|
|
84
|
-
* 3.
|
|
85
|
-
* 4.
|
|
79
|
+
* Flow (4 komendy Redis):
|
|
80
|
+
* 1. XADD — komenda z metadanymi RPC do strumienia
|
|
81
|
+
* 2. BRPOP — czekaj na odpowiedź na dedykowanym połączeniu
|
|
82
|
+
* 3. Worker: LPUSH — odpowiedź na klucz
|
|
83
|
+
* 4. DEL — cleanup klucza (TTL safety net)
|
|
86
84
|
*
|
|
87
85
|
* @param command - Komenda do wykonania
|
|
88
86
|
* @param timeout - Timeout w milisekundach (domyślnie 30s)
|
|
89
87
|
*/
|
|
90
88
|
call<T = unknown>(command: Command, timeout?: number): Promise<T>;
|
|
91
|
-
/**
|
|
92
|
-
* Tworzy callback do usuwania jobów z kolejki
|
|
93
|
-
* Callback jest przekazywany do RpcCoordinator dla możliwości usunięcia joba przy timeout
|
|
94
|
-
* Nie rzuca wyjątków - zwraca boolean sukcesu
|
|
95
|
-
*/
|
|
96
|
-
private createRemoveJobCallback;
|
|
97
89
|
/**
|
|
98
90
|
* Zamyka wszystkie połączenia
|
|
99
|
-
* Czyści cache kolejek dla optymalizacji pamięci
|
|
100
91
|
*/
|
|
101
92
|
close(): Promise<void>;
|
|
102
93
|
}
|