@powerhousedao/reactor 4.1.0-dev.57 → 4.1.0-dev.59
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/dist/src/client/reactor-client.d.ts +8 -47
- package/dist/src/client/reactor-client.d.ts.map +1 -1
- package/dist/src/client/reactor-client.js +3 -14
- package/dist/src/client/reactor-client.js.map +1 -1
- package/dist/src/client/types.d.ts +4 -4
- package/dist/src/client/types.d.ts.map +1 -1
- package/dist/src/client/types.js.map +1 -1
- package/dist/src/core/reactor.d.ts +2 -2
- package/dist/src/core/reactor.d.ts.map +1 -1
- package/dist/src/core/reactor.js +2 -15
- package/dist/src/core/reactor.js.map +1 -1
- package/dist/src/core/types.d.ts +4 -4
- package/dist/src/core/types.d.ts.map +1 -1
- package/dist/src/registry/implementation.d.ts.map +1 -1
- package/dist/src/registry/implementation.js +1 -2
- package/dist/src/registry/implementation.js.map +1 -1
- package/dist/src/shared/awaiter.d.ts +1 -1
- package/dist/src/shared/awaiter.d.ts.map +1 -1
- package/dist/src/shared/awaiter.js.map +1 -1
- package/package.json +19 -9
- package/dist/bench/event-bus.bench.d.ts +0 -2
- package/dist/bench/event-bus.bench.d.ts.map +0 -1
- package/dist/bench/event-bus.bench.js +0 -228
- package/dist/bench/event-bus.bench.js.map +0 -1
- package/dist/bench/queue-only.bench.d.ts +0 -2
- package/dist/bench/queue-only.bench.d.ts.map +0 -1
- package/dist/bench/queue-only.bench.js +0 -47
- package/dist/bench/queue-only.bench.js.map +0 -1
- package/dist/bench/reactor-throughput.bench.d.ts +0 -2
- package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
- package/dist/bench/reactor-throughput.bench.js +0 -145
- package/dist/bench/reactor-throughput.bench.js.map +0 -1
- package/dist/test/client/client-passthrough.test.d.ts +0 -2
- package/dist/test/client/client-passthrough.test.d.ts.map +0 -1
- package/dist/test/client/client-passthrough.test.js +0 -199
- package/dist/test/client/client-passthrough.test.js.map +0 -1
- package/dist/test/event-bus.test.d.ts +0 -2
- package/dist/test/event-bus.test.d.ts.map +0 -1
- package/dist/test/event-bus.test.js +0 -541
- package/dist/test/event-bus.test.js.map +0 -1
- package/dist/test/executor/executor-integration.test.d.ts +0 -2
- package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
- package/dist/test/executor/executor-integration.test.js +0 -287
- package/dist/test/executor/executor-integration.test.js.map +0 -1
- package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
- package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
- package/dist/test/executor/job-execution-handle.test.js +0 -272
- package/dist/test/executor/job-execution-handle.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
- package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
- package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
- package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
- package/dist/test/executor/simple-job-executor.test.js +0 -139
- package/dist/test/executor/simple-job-executor.test.js.map +0 -1
- package/dist/test/factories.d.ts +0 -122
- package/dist/test/factories.d.ts.map +0 -1
- package/dist/test/factories.js +0 -319
- package/dist/test/factories.js.map +0 -1
- package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
- package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
- package/dist/test/integration/document-drive-integration.test.js +0 -1102
- package/dist/test/integration/document-drive-integration.test.js.map +0 -1
- package/dist/test/integration/reactor-read.test.d.ts +0 -2
- package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
- package/dist/test/integration/reactor-read.test.js +0 -291
- package/dist/test/integration/reactor-read.test.js.map +0 -1
- package/dist/test/queue/queue-integration.test.d.ts +0 -2
- package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
- package/dist/test/queue/queue-integration.test.js +0 -322
- package/dist/test/queue/queue-integration.test.js.map +0 -1
- package/dist/test/queue/queue.test.d.ts +0 -2
- package/dist/test/queue/queue.test.d.ts.map +0 -1
- package/dist/test/queue/queue.test.js +0 -770
- package/dist/test/queue/queue.test.js.map +0 -1
- package/dist/test/registry/registry.test.d.ts +0 -2
- package/dist/test/registry/registry.test.d.ts.map +0 -1
- package/dist/test/registry/registry.test.js +0 -182
- package/dist/test/registry/registry.test.js.map +0 -1
- package/dist/test/shared/awaiter.test.d.ts +0 -2
- package/dist/test/shared/awaiter.test.d.ts.map +0 -1
- package/dist/test/shared/awaiter.test.js +0 -330
- package/dist/test/shared/awaiter.test.js.map +0 -1
- package/dist/test/subs/react-subscription-manager.test.d.ts +0 -2
- package/dist/test/subs/react-subscription-manager.test.d.ts.map +0 -1
- package/dist/test/subs/react-subscription-manager.test.js +0 -693
- package/dist/test/subs/react-subscription-manager.test.js.map +0 -1
- package/dist/test/utils.test.d.ts +0 -2
- package/dist/test/utils.test.d.ts.map +0 -1
- package/dist/test/utils.test.js +0 -66
- package/dist/test/utils.test.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -11
- package/dist/vitest.config.js.map +0 -1
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
import { bench, describe } from "vitest";
|
|
2
|
-
import { EventBus } from "../src/events/event-bus.js";
|
|
3
|
-
// Event types for testing
|
|
4
|
-
const EVENT_TYPE_SYNC = 1;
|
|
5
|
-
const EVENT_TYPE_ASYNC = 2;
|
|
6
|
-
const EVENT_TYPE_MIXED = 3;
|
|
7
|
-
// Test data
|
|
8
|
-
const TEST_DATA = { message: "test event", timestampUtcMs: Date.now() };
|
|
9
|
-
/**
|
|
10
|
-
* Creates a synchronous subscriber that performs minimal work
|
|
11
|
-
*/
|
|
12
|
-
function createSyncSubscriber() {
|
|
13
|
-
return () => {
|
|
14
|
-
//
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Creates an asynchronous subscriber with configurable delay
|
|
19
|
-
*/
|
|
20
|
-
function createAsyncSubscriber(id, delayMs = 0) {
|
|
21
|
-
return async (type, data) => {
|
|
22
|
-
// Simulate async work
|
|
23
|
-
if (delayMs > 0) {
|
|
24
|
-
await new Promise((resolve) => setTimeout(resolve, delayMs));
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Creates a subscriber that randomly decides to be sync or async
|
|
30
|
-
*/
|
|
31
|
-
function createMixedSubscriber(id, asyncProbability = 0.5) {
|
|
32
|
-
return async (type, data) => {
|
|
33
|
-
if (Math.random() < asyncProbability) {
|
|
34
|
-
// Async path with minimal delay
|
|
35
|
-
await new Promise((resolve) => setImmediate(resolve));
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Sets up an EventBus with multiple sync subscribers
|
|
41
|
-
*/
|
|
42
|
-
function setupSyncEventBus(subscriberCount) {
|
|
43
|
-
const eventBus = new EventBus();
|
|
44
|
-
for (let i = 0; i < subscriberCount; i++) {
|
|
45
|
-
eventBus.subscribe(EVENT_TYPE_SYNC, createSyncSubscriber());
|
|
46
|
-
}
|
|
47
|
-
return eventBus;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Sets up an EventBus with multiple async subscribers
|
|
51
|
-
*/
|
|
52
|
-
function setupAsyncEventBus(subscriberCount, delayMs = 0) {
|
|
53
|
-
const eventBus = new EventBus();
|
|
54
|
-
for (let i = 0; i < subscriberCount; i++) {
|
|
55
|
-
eventBus.subscribe(EVENT_TYPE_ASYNC, createAsyncSubscriber(delayMs.toString()));
|
|
56
|
-
}
|
|
57
|
-
return eventBus;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Sets up an EventBus with mixed sync/async subscribers
|
|
61
|
-
*/
|
|
62
|
-
function setupMixedEventBus(subscriberCount, asyncProbability = 0.5) {
|
|
63
|
-
const eventBus = new EventBus();
|
|
64
|
-
for (let i = 0; i < subscriberCount; i++) {
|
|
65
|
-
eventBus.subscribe(EVENT_TYPE_MIXED, createMixedSubscriber(asyncProbability.toString()));
|
|
66
|
-
}
|
|
67
|
-
return eventBus;
|
|
68
|
-
}
|
|
69
|
-
describe("EventBus Sync Emission Throughput", () => {
|
|
70
|
-
const syncEventBus1 = setupSyncEventBus(1);
|
|
71
|
-
const syncEventBus5 = setupSyncEventBus(5);
|
|
72
|
-
const syncEventBus10 = setupSyncEventBus(10);
|
|
73
|
-
const syncEventBus25 = setupSyncEventBus(25);
|
|
74
|
-
const syncEventBus50 = setupSyncEventBus(50);
|
|
75
|
-
const syncEventBus100 = setupSyncEventBus(100);
|
|
76
|
-
bench("1 sync subscriber", async () => {
|
|
77
|
-
await syncEventBus1.emit(EVENT_TYPE_SYNC, TEST_DATA);
|
|
78
|
-
}, { time: 500 });
|
|
79
|
-
bench("5 sync subscribers", async () => {
|
|
80
|
-
await syncEventBus5.emit(EVENT_TYPE_SYNC, TEST_DATA);
|
|
81
|
-
}, { time: 500 });
|
|
82
|
-
bench("10 sync subscribers", async () => {
|
|
83
|
-
await syncEventBus10.emit(EVENT_TYPE_SYNC, TEST_DATA);
|
|
84
|
-
}, { time: 500 });
|
|
85
|
-
bench("25 sync subscribers", async () => {
|
|
86
|
-
await syncEventBus25.emit(EVENT_TYPE_SYNC, TEST_DATA);
|
|
87
|
-
}, { time: 500 });
|
|
88
|
-
bench("50 sync subscribers", async () => {
|
|
89
|
-
await syncEventBus50.emit(EVENT_TYPE_SYNC, TEST_DATA);
|
|
90
|
-
}, { time: 500 });
|
|
91
|
-
bench("100 sync subscribers", async () => {
|
|
92
|
-
await syncEventBus100.emit(EVENT_TYPE_SYNC, TEST_DATA);
|
|
93
|
-
}, { time: 500 });
|
|
94
|
-
});
|
|
95
|
-
describe("EventBus Async Emission Throughput", () => {
|
|
96
|
-
const asyncEventBus1_0ms = setupAsyncEventBus(1, 0);
|
|
97
|
-
const asyncEventBus5_0ms = setupAsyncEventBus(5, 0);
|
|
98
|
-
const asyncEventBus10_0ms = setupAsyncEventBus(10, 0);
|
|
99
|
-
const asyncEventBus1_1ms = setupAsyncEventBus(1, 1);
|
|
100
|
-
const asyncEventBus5_1ms = setupAsyncEventBus(5, 1);
|
|
101
|
-
const asyncEventBus10_1ms = setupAsyncEventBus(10, 1);
|
|
102
|
-
const asyncEventBus1_5ms = setupAsyncEventBus(1, 5);
|
|
103
|
-
const asyncEventBus5_5ms = setupAsyncEventBus(5, 5);
|
|
104
|
-
bench("1 async subscriber (0ms delay)", async () => {
|
|
105
|
-
await asyncEventBus1_0ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
106
|
-
}, { time: 500 });
|
|
107
|
-
bench("5 async subscribers (0ms delay)", async () => {
|
|
108
|
-
await asyncEventBus5_0ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
109
|
-
}, { time: 500 });
|
|
110
|
-
bench("10 async subscribers (0ms delay)", async () => {
|
|
111
|
-
await asyncEventBus10_0ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
112
|
-
}, { time: 500 });
|
|
113
|
-
bench("1 async subscriber (1ms delay)", async () => {
|
|
114
|
-
await asyncEventBus1_1ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
115
|
-
}, { time: 500 });
|
|
116
|
-
bench("5 async subscribers (1ms delay)", async () => {
|
|
117
|
-
await asyncEventBus5_1ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
118
|
-
}, { time: 500 });
|
|
119
|
-
bench("10 async subscribers (1ms delay)", async () => {
|
|
120
|
-
await asyncEventBus10_1ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
121
|
-
}, { time: 500 });
|
|
122
|
-
bench("1 async subscriber (5ms delay)", async () => {
|
|
123
|
-
await asyncEventBus1_5ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
124
|
-
}, { time: 500 });
|
|
125
|
-
bench("5 async subscribers (5ms delay)", async () => {
|
|
126
|
-
await asyncEventBus5_5ms.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
127
|
-
}, { time: 500 });
|
|
128
|
-
});
|
|
129
|
-
describe("EventBus Mixed Sync/Async Emission Throughput", () => {
|
|
130
|
-
const mixedEventBus10_10 = setupMixedEventBus(10, 0.1);
|
|
131
|
-
const mixedEventBus10_30 = setupMixedEventBus(10, 0.3);
|
|
132
|
-
const mixedEventBus10_50 = setupMixedEventBus(10, 0.5);
|
|
133
|
-
const mixedEventBus10_70 = setupMixedEventBus(10, 0.7);
|
|
134
|
-
const mixedEventBus10_90 = setupMixedEventBus(10, 0.9);
|
|
135
|
-
const mixedEventBus25_50 = setupMixedEventBus(25, 0.5);
|
|
136
|
-
const mixedEventBus50_50 = setupMixedEventBus(50, 0.5);
|
|
137
|
-
bench("10 subscribers (90% sync, 10% async)", async () => {
|
|
138
|
-
await mixedEventBus10_10.emit(EVENT_TYPE_MIXED, TEST_DATA);
|
|
139
|
-
}, { time: 500 });
|
|
140
|
-
bench("10 subscribers (70% sync, 30% async)", async () => {
|
|
141
|
-
await mixedEventBus10_30.emit(EVENT_TYPE_MIXED, TEST_DATA);
|
|
142
|
-
}, { time: 500 });
|
|
143
|
-
bench("10 subscribers (50% sync, 50% async)", async () => {
|
|
144
|
-
await mixedEventBus10_50.emit(EVENT_TYPE_MIXED, TEST_DATA);
|
|
145
|
-
}, { time: 500 });
|
|
146
|
-
bench("10 subscribers (30% sync, 70% async)", async () => {
|
|
147
|
-
await mixedEventBus10_70.emit(EVENT_TYPE_MIXED, TEST_DATA);
|
|
148
|
-
}, { time: 500 });
|
|
149
|
-
bench("10 subscribers (10% sync, 90% async)", async () => {
|
|
150
|
-
await mixedEventBus10_90.emit(EVENT_TYPE_MIXED, TEST_DATA);
|
|
151
|
-
}, { time: 500 });
|
|
152
|
-
bench("25 subscribers (50% sync, 50% async)", async () => {
|
|
153
|
-
await mixedEventBus25_50.emit(EVENT_TYPE_MIXED, TEST_DATA);
|
|
154
|
-
}, { time: 500 });
|
|
155
|
-
bench("50 subscribers (50% sync, 50% async)", async () => {
|
|
156
|
-
await mixedEventBus50_50.emit(EVENT_TYPE_MIXED, TEST_DATA);
|
|
157
|
-
}, { time: 500 });
|
|
158
|
-
});
|
|
159
|
-
describe("EventBus Subscription Management Performance", () => {
|
|
160
|
-
bench("Subscribe and unsubscribe (single)", () => {
|
|
161
|
-
const eventBus = new EventBus();
|
|
162
|
-
const unsubscribe = eventBus.subscribe(EVENT_TYPE_SYNC, createSyncSubscriber());
|
|
163
|
-
unsubscribe();
|
|
164
|
-
}, { time: 500 });
|
|
165
|
-
bench("Subscribe and unsubscribe (batch of 10)", () => {
|
|
166
|
-
const eventBus = new EventBus();
|
|
167
|
-
const unsubscribes = [];
|
|
168
|
-
for (let i = 0; i < 10; i++) {
|
|
169
|
-
unsubscribes.push(eventBus.subscribe(EVENT_TYPE_SYNC, createSyncSubscriber()));
|
|
170
|
-
}
|
|
171
|
-
for (const unsubscribe of unsubscribes) {
|
|
172
|
-
unsubscribe();
|
|
173
|
-
}
|
|
174
|
-
}, { time: 500 });
|
|
175
|
-
bench("Subscribe and unsubscribe (batch of 100)", () => {
|
|
176
|
-
const eventBus = new EventBus();
|
|
177
|
-
const unsubscribes = [];
|
|
178
|
-
for (let i = 0; i < 100; i++) {
|
|
179
|
-
unsubscribes.push(eventBus.subscribe(EVENT_TYPE_SYNC, createSyncSubscriber()));
|
|
180
|
-
}
|
|
181
|
-
for (const unsubscribe of unsubscribes) {
|
|
182
|
-
unsubscribe();
|
|
183
|
-
}
|
|
184
|
-
}, { time: 500 });
|
|
185
|
-
});
|
|
186
|
-
describe("EventBus Error Handling Performance", () => {
|
|
187
|
-
function createErrorSubscriber(shouldError) {
|
|
188
|
-
return () => {
|
|
189
|
-
if (shouldError) {
|
|
190
|
-
throw new Error("Test error");
|
|
191
|
-
}
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
function createAsyncErrorSubscriber(shouldError) {
|
|
195
|
-
return async () => {
|
|
196
|
-
await new Promise((resolve) => setTimeout(resolve, 1));
|
|
197
|
-
if (shouldError) {
|
|
198
|
-
throw new Error("Test async error");
|
|
199
|
-
}
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
// Test error aggregation performance
|
|
203
|
-
const errorEventBus = new EventBus();
|
|
204
|
-
errorEventBus.subscribe(EVENT_TYPE_SYNC, createErrorSubscriber(true));
|
|
205
|
-
errorEventBus.subscribe(EVENT_TYPE_SYNC, createErrorSubscriber(true));
|
|
206
|
-
errorEventBus.subscribe(EVENT_TYPE_SYNC, createErrorSubscriber(false));
|
|
207
|
-
const asyncErrorEventBus = new EventBus();
|
|
208
|
-
asyncErrorEventBus.subscribe(EVENT_TYPE_ASYNC, createAsyncErrorSubscriber(true));
|
|
209
|
-
asyncErrorEventBus.subscribe(EVENT_TYPE_ASYNC, createAsyncErrorSubscriber(true));
|
|
210
|
-
asyncErrorEventBus.subscribe(EVENT_TYPE_ASYNC, createAsyncErrorSubscriber(false));
|
|
211
|
-
bench("Error aggregation (sync)", async () => {
|
|
212
|
-
try {
|
|
213
|
-
await errorEventBus.emit(EVENT_TYPE_SYNC, TEST_DATA);
|
|
214
|
-
}
|
|
215
|
-
catch {
|
|
216
|
-
// Expected error
|
|
217
|
-
}
|
|
218
|
-
}, { time: 500 });
|
|
219
|
-
bench("Error aggregation (async)", async () => {
|
|
220
|
-
try {
|
|
221
|
-
await asyncErrorEventBus.emit(EVENT_TYPE_ASYNC, TEST_DATA);
|
|
222
|
-
}
|
|
223
|
-
catch {
|
|
224
|
-
// Expected error
|
|
225
|
-
}
|
|
226
|
-
}, { time: 500 });
|
|
227
|
-
});
|
|
228
|
-
//# sourceMappingURL=event-bus.bench.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.bench.js","sourceRoot":"","sources":["../../bench/event-bus.bench.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue-only.bench.d.ts","sourceRoot":"","sources":["../../bench/queue-only.bench.ts"],"names":[],"mappings":""}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { bench, describe } from "vitest";
|
|
2
|
-
import { EventBus } from "../src/events/event-bus.js";
|
|
3
|
-
import { InMemoryQueue } from "../src/queue/queue.js";
|
|
4
|
-
import {} from "../src/queue/types.js";
|
|
5
|
-
// Pre-create components to avoid setup overhead
|
|
6
|
-
const eventBus = new EventBus();
|
|
7
|
-
const queue = new InMemoryQueue(eventBus);
|
|
8
|
-
let jobCounter = 0;
|
|
9
|
-
function createMinimalJob() {
|
|
10
|
-
return {
|
|
11
|
-
id: `job-${++jobCounter}`,
|
|
12
|
-
documentId: "doc1",
|
|
13
|
-
scope: "default",
|
|
14
|
-
branch: "main",
|
|
15
|
-
operation: {
|
|
16
|
-
action: {
|
|
17
|
-
id: `action-${jobCounter}`,
|
|
18
|
-
type: "CREATE",
|
|
19
|
-
timestampUtcMs: "2023-01-01T00:00:00.000Z",
|
|
20
|
-
input: { data: "test" },
|
|
21
|
-
scope: "default",
|
|
22
|
-
},
|
|
23
|
-
index: 0,
|
|
24
|
-
timestampUtcMs: "2023-01-01T00:00:00.000Z",
|
|
25
|
-
hash: "hash-123",
|
|
26
|
-
skip: 0,
|
|
27
|
-
},
|
|
28
|
-
maxRetries: 0,
|
|
29
|
-
createdAt: "2023-01-01T00:00:00.000Z",
|
|
30
|
-
queueHint: [],
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
describe("Queue Only Operations", () => {
|
|
34
|
-
bench("enqueue job", async () => {
|
|
35
|
-
const job = createMinimalJob();
|
|
36
|
-
await queue.enqueue(job);
|
|
37
|
-
});
|
|
38
|
-
bench("enqueue and dequeue", async () => {
|
|
39
|
-
const job = createMinimalJob();
|
|
40
|
-
await queue.enqueue(job);
|
|
41
|
-
await queue.dequeue(job.documentId, job.scope, job.branch);
|
|
42
|
-
});
|
|
43
|
-
bench("queue total size", async () => {
|
|
44
|
-
await queue.totalSize();
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
//# sourceMappingURL=queue-only.bench.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queue-only.bench.js","sourceRoot":"","sources":["../../bench/queue-only.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAY,MAAM,uBAAuB,CAAC;AAEjD,gDAAgD;AAChD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAE1C,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,SAAS,gBAAgB;IACvB,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACzB,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,MAAM;QACd,SAAS,EAAE;YACT,MAAM,EAAE;gBACN,EAAE,EAAE,UAAU,UAAU,EAAE;gBAC1B,IAAI,EAAE,QAAQ;gBACd,cAAc,EAAE,0BAA0B;gBAC1C,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;gBACvB,KAAK,EAAE,SAAS;aACjB;YACD,KAAK,EAAE,CAAC;YACR,cAAc,EAAE,0BAA0B;YAC1C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,CAAC;SACR;QACD,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,KAAK,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;QAC9B,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,kBAAkB,EAAE,KAAK,IAAI,EAAE;QACnC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-throughput.bench.d.ts","sourceRoot":"","sources":["../../bench/reactor-throughput.bench.ts"],"names":[],"mappings":""}
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { MemoryStorage } from "document-drive";
|
|
2
|
-
import { documentModelDocumentModelModule } from "document-model";
|
|
3
|
-
import { beforeAll, bench, describe } from "vitest";
|
|
4
|
-
import { EventBus } from "../src/events/event-bus.js";
|
|
5
|
-
import { SimpleJobExecutor } from "../src/executor/simple-job-executor.js";
|
|
6
|
-
import { DocumentModelRegistry } from "../src/index.js";
|
|
7
|
-
import { InMemoryQueue } from "../src/queue/queue.js";
|
|
8
|
-
import {} from "../src/queue/types.js";
|
|
9
|
-
import { createDocumentModelAction, createTestOperation, } from "../test/factories.js";
|
|
10
|
-
// Pre-create shared components to avoid setup overhead
|
|
11
|
-
const eventBus = new EventBus();
|
|
12
|
-
const queue = new InMemoryQueue(eventBus);
|
|
13
|
-
// Create registry with real document model
|
|
14
|
-
const registry = new DocumentModelRegistry();
|
|
15
|
-
registry.registerModules(documentModelDocumentModelModule);
|
|
16
|
-
// Use real storage
|
|
17
|
-
const storage = new MemoryStorage();
|
|
18
|
-
// Create real executor with real storage
|
|
19
|
-
const executor = new SimpleJobExecutor(registry, storage, storage);
|
|
20
|
-
// Pre-create a document for benchmarks
|
|
21
|
-
const testDocument = documentModelDocumentModelModule.utils.createDocument();
|
|
22
|
-
testDocument.header.id = "doc1";
|
|
23
|
-
let jobCounter = 0;
|
|
24
|
-
function createSimpleJob() {
|
|
25
|
-
const action = createDocumentModelAction("SET_NAME", {
|
|
26
|
-
input: { name: `Test Name ${++jobCounter}` },
|
|
27
|
-
});
|
|
28
|
-
const operation = createTestOperation({ action });
|
|
29
|
-
return {
|
|
30
|
-
id: `job-${jobCounter}`,
|
|
31
|
-
documentId: "doc1",
|
|
32
|
-
scope: "global",
|
|
33
|
-
branch: "main",
|
|
34
|
-
operation,
|
|
35
|
-
maxRetries: 0,
|
|
36
|
-
createdAt: new Date().toISOString(),
|
|
37
|
-
queueHint: [],
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
function createComplexJob() {
|
|
41
|
-
const action = createDocumentModelAction("SET_DESCRIPTION", {
|
|
42
|
-
input: {
|
|
43
|
-
description: Array.from({ length: 100 }, (_, i) => `Description line ${i}`).join("\n"),
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
const operation = createTestOperation({
|
|
47
|
-
action,
|
|
48
|
-
index: Math.floor(Math.random() * 1000),
|
|
49
|
-
});
|
|
50
|
-
return {
|
|
51
|
-
id: `job-${++jobCounter}`,
|
|
52
|
-
documentId: "doc1",
|
|
53
|
-
scope: "global",
|
|
54
|
-
branch: "main",
|
|
55
|
-
operation,
|
|
56
|
-
maxRetries: 0,
|
|
57
|
-
createdAt: new Date().toISOString(),
|
|
58
|
-
queueHint: [],
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
describe("Queue Throughput", () => {
|
|
62
|
-
beforeAll(async () => {
|
|
63
|
-
await storage.create(testDocument);
|
|
64
|
-
});
|
|
65
|
-
bench("enqueue simple job", async () => {
|
|
66
|
-
const job = createSimpleJob();
|
|
67
|
-
await queue.enqueue(job);
|
|
68
|
-
});
|
|
69
|
-
bench("enqueue complex job", async () => {
|
|
70
|
-
const job = createComplexJob();
|
|
71
|
-
await queue.enqueue(job);
|
|
72
|
-
});
|
|
73
|
-
bench("enqueue then dequeue", async () => {
|
|
74
|
-
const job = createSimpleJob();
|
|
75
|
-
await queue.enqueue(job);
|
|
76
|
-
await queue.dequeue(job.documentId, job.scope, job.branch);
|
|
77
|
-
});
|
|
78
|
-
bench("dequeue next available", async () => {
|
|
79
|
-
// Ensure there's always a job to dequeue
|
|
80
|
-
const job = createSimpleJob();
|
|
81
|
-
await queue.enqueue(job);
|
|
82
|
-
await queue.dequeueNext();
|
|
83
|
-
});
|
|
84
|
-
bench("queue operations", async () => {
|
|
85
|
-
await queue.totalSize();
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
describe("Job Executor Throughput", () => {
|
|
89
|
-
bench("execute simple job", async () => {
|
|
90
|
-
const job = createSimpleJob();
|
|
91
|
-
await executor.executeJob(job);
|
|
92
|
-
});
|
|
93
|
-
bench("execute complex job", async () => {
|
|
94
|
-
const job = createComplexJob();
|
|
95
|
-
await executor.executeJob(job);
|
|
96
|
-
});
|
|
97
|
-
// Status and stats checks are now on the manager, not individual executors
|
|
98
|
-
});
|
|
99
|
-
describe("End-to-End Throughput", () => {
|
|
100
|
-
bench("enqueue with event emission", async () => {
|
|
101
|
-
const job = createSimpleJob();
|
|
102
|
-
await queue.enqueue(job); // This emits events
|
|
103
|
-
});
|
|
104
|
-
bench("multi-document operations", async () => {
|
|
105
|
-
const job1 = { ...createSimpleJob(), documentId: "doc1" };
|
|
106
|
-
const job2 = { ...createSimpleJob(), documentId: "doc2" };
|
|
107
|
-
const job3 = { ...createSimpleJob(), documentId: "doc3" };
|
|
108
|
-
await queue.enqueue(job1);
|
|
109
|
-
await queue.enqueue(job2);
|
|
110
|
-
await queue.enqueue(job3);
|
|
111
|
-
});
|
|
112
|
-
bench("batch job creation", async () => {
|
|
113
|
-
const jobs = Array.from({ length: 10 }, () => createSimpleJob());
|
|
114
|
-
for (const job of jobs) {
|
|
115
|
-
await queue.enqueue(job);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
bench("mixed workload", async () => {
|
|
119
|
-
const simpleJob = createSimpleJob();
|
|
120
|
-
const complexJob = createComplexJob();
|
|
121
|
-
await executor.executeJob(simpleJob);
|
|
122
|
-
await executor.executeJob(complexJob);
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
describe("Performance Scaling", () => {
|
|
126
|
-
bench("5 simple jobs", async () => {
|
|
127
|
-
const jobs = Array.from({ length: 5 }, () => createSimpleJob());
|
|
128
|
-
for (const job of jobs) {
|
|
129
|
-
await executor.executeJob(job);
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
bench("5 complex jobs", async () => {
|
|
133
|
-
const jobs = Array.from({ length: 5 }, () => createComplexJob());
|
|
134
|
-
for (const job of jobs) {
|
|
135
|
-
await executor.executeJob(job);
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
bench("mixed 10 jobs", async () => {
|
|
139
|
-
const jobs = Array.from({ length: 10 }, (_, i) => i % 2 === 0 ? createSimpleJob() : createComplexJob());
|
|
140
|
-
for (const job of jobs) {
|
|
141
|
-
await executor.executeJob(job);
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
});
|
|
145
|
-
//# sourceMappingURL=reactor-throughput.bench.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-throughput.bench.js","sourceRoot":"","sources":["../../bench/reactor-throughput.bench.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client-passthrough.test.d.ts","sourceRoot":"","sources":["../../../test/client/client-passthrough.test.ts"],"names":[],"mappings":""}
|