@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.
Files changed (97) hide show
  1. package/dist/src/client/reactor-client.d.ts +8 -47
  2. package/dist/src/client/reactor-client.d.ts.map +1 -1
  3. package/dist/src/client/reactor-client.js +3 -14
  4. package/dist/src/client/reactor-client.js.map +1 -1
  5. package/dist/src/client/types.d.ts +4 -4
  6. package/dist/src/client/types.d.ts.map +1 -1
  7. package/dist/src/client/types.js.map +1 -1
  8. package/dist/src/core/reactor.d.ts +2 -2
  9. package/dist/src/core/reactor.d.ts.map +1 -1
  10. package/dist/src/core/reactor.js +2 -15
  11. package/dist/src/core/reactor.js.map +1 -1
  12. package/dist/src/core/types.d.ts +4 -4
  13. package/dist/src/core/types.d.ts.map +1 -1
  14. package/dist/src/registry/implementation.d.ts.map +1 -1
  15. package/dist/src/registry/implementation.js +1 -2
  16. package/dist/src/registry/implementation.js.map +1 -1
  17. package/dist/src/shared/awaiter.d.ts +1 -1
  18. package/dist/src/shared/awaiter.d.ts.map +1 -1
  19. package/dist/src/shared/awaiter.js.map +1 -1
  20. package/package.json +19 -9
  21. package/dist/bench/event-bus.bench.d.ts +0 -2
  22. package/dist/bench/event-bus.bench.d.ts.map +0 -1
  23. package/dist/bench/event-bus.bench.js +0 -228
  24. package/dist/bench/event-bus.bench.js.map +0 -1
  25. package/dist/bench/queue-only.bench.d.ts +0 -2
  26. package/dist/bench/queue-only.bench.d.ts.map +0 -1
  27. package/dist/bench/queue-only.bench.js +0 -47
  28. package/dist/bench/queue-only.bench.js.map +0 -1
  29. package/dist/bench/reactor-throughput.bench.d.ts +0 -2
  30. package/dist/bench/reactor-throughput.bench.d.ts.map +0 -1
  31. package/dist/bench/reactor-throughput.bench.js +0 -145
  32. package/dist/bench/reactor-throughput.bench.js.map +0 -1
  33. package/dist/test/client/client-passthrough.test.d.ts +0 -2
  34. package/dist/test/client/client-passthrough.test.d.ts.map +0 -1
  35. package/dist/test/client/client-passthrough.test.js +0 -199
  36. package/dist/test/client/client-passthrough.test.js.map +0 -1
  37. package/dist/test/event-bus.test.d.ts +0 -2
  38. package/dist/test/event-bus.test.d.ts.map +0 -1
  39. package/dist/test/event-bus.test.js +0 -541
  40. package/dist/test/event-bus.test.js.map +0 -1
  41. package/dist/test/executor/executor-integration.test.d.ts +0 -2
  42. package/dist/test/executor/executor-integration.test.d.ts.map +0 -1
  43. package/dist/test/executor/executor-integration.test.js +0 -287
  44. package/dist/test/executor/executor-integration.test.js.map +0 -1
  45. package/dist/test/executor/job-execution-handle.test.d.ts +0 -2
  46. package/dist/test/executor/job-execution-handle.test.d.ts.map +0 -1
  47. package/dist/test/executor/job-execution-handle.test.js +0 -272
  48. package/dist/test/executor/job-execution-handle.test.js.map +0 -1
  49. package/dist/test/executor/simple-job-executor-manager.test.d.ts +0 -2
  50. package/dist/test/executor/simple-job-executor-manager.test.d.ts.map +0 -1
  51. package/dist/test/executor/simple-job-executor-manager.test.js +0 -132
  52. package/dist/test/executor/simple-job-executor-manager.test.js.map +0 -1
  53. package/dist/test/executor/simple-job-executor.test.d.ts +0 -2
  54. package/dist/test/executor/simple-job-executor.test.d.ts.map +0 -1
  55. package/dist/test/executor/simple-job-executor.test.js +0 -139
  56. package/dist/test/executor/simple-job-executor.test.js.map +0 -1
  57. package/dist/test/factories.d.ts +0 -122
  58. package/dist/test/factories.d.ts.map +0 -1
  59. package/dist/test/factories.js +0 -319
  60. package/dist/test/factories.js.map +0 -1
  61. package/dist/test/integration/document-drive-integration.test.d.ts +0 -2
  62. package/dist/test/integration/document-drive-integration.test.d.ts.map +0 -1
  63. package/dist/test/integration/document-drive-integration.test.js +0 -1102
  64. package/dist/test/integration/document-drive-integration.test.js.map +0 -1
  65. package/dist/test/integration/reactor-read.test.d.ts +0 -2
  66. package/dist/test/integration/reactor-read.test.d.ts.map +0 -1
  67. package/dist/test/integration/reactor-read.test.js +0 -291
  68. package/dist/test/integration/reactor-read.test.js.map +0 -1
  69. package/dist/test/queue/queue-integration.test.d.ts +0 -2
  70. package/dist/test/queue/queue-integration.test.d.ts.map +0 -1
  71. package/dist/test/queue/queue-integration.test.js +0 -322
  72. package/dist/test/queue/queue-integration.test.js.map +0 -1
  73. package/dist/test/queue/queue.test.d.ts +0 -2
  74. package/dist/test/queue/queue.test.d.ts.map +0 -1
  75. package/dist/test/queue/queue.test.js +0 -770
  76. package/dist/test/queue/queue.test.js.map +0 -1
  77. package/dist/test/registry/registry.test.d.ts +0 -2
  78. package/dist/test/registry/registry.test.d.ts.map +0 -1
  79. package/dist/test/registry/registry.test.js +0 -182
  80. package/dist/test/registry/registry.test.js.map +0 -1
  81. package/dist/test/shared/awaiter.test.d.ts +0 -2
  82. package/dist/test/shared/awaiter.test.d.ts.map +0 -1
  83. package/dist/test/shared/awaiter.test.js +0 -330
  84. package/dist/test/shared/awaiter.test.js.map +0 -1
  85. package/dist/test/subs/react-subscription-manager.test.d.ts +0 -2
  86. package/dist/test/subs/react-subscription-manager.test.d.ts.map +0 -1
  87. package/dist/test/subs/react-subscription-manager.test.js +0 -693
  88. package/dist/test/subs/react-subscription-manager.test.js.map +0 -1
  89. package/dist/test/utils.test.d.ts +0 -2
  90. package/dist/test/utils.test.d.ts.map +0 -1
  91. package/dist/test/utils.test.js +0 -66
  92. package/dist/test/utils.test.js.map +0 -1
  93. package/dist/tsconfig.tsbuildinfo +0 -1
  94. package/dist/vitest.config.d.ts +0 -3
  95. package/dist/vitest.config.d.ts.map +0 -1
  96. package/dist/vitest.config.js +0 -11
  97. 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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=queue-only.bench.d.ts.map
@@ -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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=reactor-throughput.bench.d.ts.map
@@ -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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,uDAAuD;AACvD,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;AAChC,MAAM,KAAK,GAAG,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAE1C,2CAA2C;AAC3C,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;AAC7C,QAAQ,CAAC,eAAe,CAAC,gCAAgC,CAAC,CAAC;AAE3D,mBAAmB;AACnB,MAAM,OAAO,GAAG,IAAI,aAAa,EAAE,CAAC;AAEpC,yCAAyC;AACzC,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAEnE,uCAAuC;AACvC,MAAM,YAAY,GAAG,gCAAgC,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;AAC7E,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;AAEhC,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,yBAAyB,CAAC,UAAU,EAAE;QACnD,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE;KAC7C,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAElD,OAAO;QACL,EAAE,EAAE,OAAO,UAAU,EAAE;QACvB,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,MAAM;QACd,SAAS;QACT,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,MAAM,GAAG,yBAAyB,CAAC,iBAAiB,EAAE;QAC1D,KAAK,EAAE;YACL,WAAW,EAAE,KAAK,CAAC,IAAI,CACrB,EAAE,MAAM,EAAE,GAAG,EAAE,EACf,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAClC,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;KACF,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,mBAAmB,CAAC;QACpC,MAAM;QACN,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;KACxC,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;QACzB,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE,MAAM;QACd,SAAS;QACT,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,EAAE;KACd,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,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;IAC3B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,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,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACzC,yCAAyC;QACzC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;IAC5B,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;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,KAAK,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAC;QAC/B,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,2EAA2E;AAC7E,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,KAAK,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB;IAChD,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,EAAE,GAAG,eAAe,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QAE1D,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;QAEtC,MAAM,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,MAAM,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,KAAK,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;QAChE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACjE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC/C,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CACrD,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=client-passthrough.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-passthrough.test.d.ts","sourceRoot":"","sources":["../../../test/client/client-passthrough.test.ts"],"names":[],"mappings":""}