atomic-queues 1.2.4 → 1.2.6
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 +264 -127
- package/dist/services/processor-discovery/processor-discovery.service.d.ts +8 -1
- package/dist/services/processor-discovery/processor-discovery.service.d.ts.map +1 -1
- package/dist/services/processor-discovery/processor-discovery.service.js +22 -3
- package/dist/services/processor-discovery/processor-discovery.service.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,17 +9,17 @@ A NestJS library for atomic, sequential job processing per entity with BullMQ an
|
|
|
9
9
|
║ THE PROBLEM ║
|
|
10
10
|
╠═══════════════════════════════════════════════════════════════════════════════╣
|
|
11
11
|
║ ║
|
|
12
|
-
║
|
|
12
|
+
║ User has $100 balance. Two $80 withdrawals arrive at the same time: ║
|
|
13
13
|
║ ║
|
|
14
|
-
║
|
|
15
|
-
║
|
|
16
|
-
║
|
|
17
|
-
║
|
|
18
|
-
║
|
|
19
|
-
║
|
|
20
|
-
║
|
|
21
|
-
║
|
|
22
|
-
║
|
|
14
|
+
║ Withdraw $80 ──┐ ║
|
|
15
|
+
║ (API 1) │ ┌────────────────────┐ ║
|
|
16
|
+
║ ├───▶│ Balance: $100 │ ║
|
|
17
|
+
║ Withdraw $80 ──┘ │ Both read $100 │ ║
|
|
18
|
+
║ (API 2) │ Both approve │ ║
|
|
19
|
+
║ │ Final: -$60 💥 │ ║
|
|
20
|
+
║ └────────────────────┘ ║
|
|
21
|
+
║ ║
|
|
22
|
+
║ Race condition: Both transactions see $100, both succeed, balance goes -$60 ║
|
|
23
23
|
║ ║
|
|
24
24
|
╚═══════════════════════════════════════════════════════════════════════════════╝
|
|
25
25
|
|
|
@@ -27,17 +27,16 @@ A NestJS library for atomic, sequential job processing per entity with BullMQ an
|
|
|
27
27
|
║ THE SOLUTION ║
|
|
28
28
|
╠═══════════════════════════════════════════════════════════════════════════════╣
|
|
29
29
|
║ ║
|
|
30
|
-
║ atomic-queues
|
|
30
|
+
║ atomic-queues processes one transaction at a time per account: ║
|
|
31
|
+
║ ║
|
|
32
|
+
║ Withdraw $80 ──┐ ┌─────────────┐ ┌─────────────────────────────┐ ║
|
|
33
|
+
║ (API 1) │ │ │ │ Worker processes queue: │ ║
|
|
34
|
+
║ ├────▶│ Redis Queue │────▶│ │ ║
|
|
35
|
+
║ Withdraw $80 ──┘ │ [W1] [W2] │ │ W1: $100 - $80 = $20 ✓ │ ║
|
|
36
|
+
║ (API 2) │ │ │ W2: $20 < $80 = REJECTED ✓ │ ║
|
|
37
|
+
║ └─────────────┘ └─────────────────────────────┘ ║
|
|
31
38
|
║ ║
|
|
32
|
-
║
|
|
33
|
-
║ │ Request A │──┐ │ │ │ │ ║
|
|
34
|
-
║ └──────────┘ │ │ Redis Queue │ │ Worker │ ┌───────────┐ ║
|
|
35
|
-
║ ┌──────────┐ │ │ ┌───┬───┬───┐ │ │ │ │ │ ║
|
|
36
|
-
║ │ Request B │──┼──▶│ │ A │ B │ C │ │─────▶│ (1 job │─▶│Entity 123 │ ║
|
|
37
|
-
║ └──────────┘ │ │ └───┴───┴───┘ │ │ at a time│ │ │ ║
|
|
38
|
-
║ ┌──────────┐ │ │ │ │ │ └───────────┘ ║
|
|
39
|
-
║ │ Request C │──┘ └─────────────────┘ └──────────┘ ║
|
|
40
|
-
║ └──────────┘ ║
|
|
39
|
+
║ Sequential processing: W1 completes first, W2 sees updated balance ║
|
|
41
40
|
║ ║
|
|
42
41
|
╚═══════════════════════════════════════════════════════════════════════════════╝
|
|
43
42
|
```
|
|
@@ -147,44 +146,65 @@ That's it! The library automatically:
|
|
|
147
146
|
║ ARCHITECTURE ║
|
|
148
147
|
╚═══════════════════════════════════════════════════════════════════════════════╝
|
|
149
148
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
149
|
+
┌──────────────────┐
|
|
150
|
+
│ API Request │ POST /accounts/ACC-123/withdraw { amount: 80 }
|
|
151
|
+
└────────┬─────────┘
|
|
152
|
+
│
|
|
153
|
+
▼
|
|
154
|
+
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
155
|
+
│ QueueBus.forProcessor(AccountProcessor).enqueue(new WithdrawCommand(...)) │
|
|
156
|
+
└────────┬─────────────────────────────────────────────────────────────────────┘
|
|
157
|
+
│
|
|
158
|
+
│ ① Reads @WorkerProcessor metadata from AccountProcessor
|
|
159
|
+
│ ② Extracts accountId from command.accountId property
|
|
160
|
+
│ ③ Generates queue name: "account-ACC-123-queue"
|
|
161
|
+
│
|
|
162
|
+
▼
|
|
163
|
+
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
164
|
+
│ REDIS │
|
|
165
|
+
│ ┌────────────────────────────────────────────────────────────────────────┐ │
|
|
166
|
+
│ │ Queue: account-ACC-123-queue │ │
|
|
167
|
+
│ │ ┌─────────────────┬─────────────────┬─────────────────┐ │ │
|
|
168
|
+
│ │ │ Job 1 │ Job 2 │ Job 3 │ ... │ │
|
|
169
|
+
│ │ │ WithdrawCommand │ DepositCommand │ TransferCommand │ │ │
|
|
170
|
+
│ │ │ amount: 80 │ amount: 50 │ amount: 25 │ │ │
|
|
171
|
+
│ │ └─────────────────┴─────────────────┴─────────────────┘ │ │
|
|
172
|
+
│ └────────────────────────────────────────────────────────────────────────┘ │
|
|
173
|
+
│ │
|
|
174
|
+
│ ┌────────────────────────────────────────────────────────────────────────┐ │
|
|
175
|
+
│ │ Queue: account-ACC-456-queue (different account = different queue) │ │
|
|
176
|
+
│ │ ┌─────────────────┐ │ │
|
|
177
|
+
│ │ │ Job 1 │ ← Processes in parallel with ACC-123 │ │
|
|
178
|
+
│ │ │ WithdrawCommand │ │ │
|
|
179
|
+
│ │ └─────────────────┘ │ │
|
|
180
|
+
│ └────────────────────────────────────────────────────────────────────────┘ │
|
|
181
|
+
└──────────────────────────────────────────────────────────────────────────────┘
|
|
182
|
+
│
|
|
183
|
+
│ ④ BullMQ Worker pulls Job 1 (only one job at a time per queue)
|
|
184
|
+
│
|
|
185
|
+
▼
|
|
186
|
+
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
187
|
+
│ Worker: account-ACC-123-worker │
|
|
188
|
+
│ │
|
|
189
|
+
│ ┌─────────────────────────────────────────────────────────────────────────┐ │
|
|
190
|
+
│ │ ⑤ Lookup "WithdrawCommand" in QueueBus.globalRegistry │ │
|
|
191
|
+
│ │ ⑥ Instantiate: Object.assign(new WithdrawCommand(), job.data) │ │
|
|
192
|
+
│ │ ⑦ Execute: CommandBus.execute(withdrawCommand) │ │
|
|
193
|
+
│ └─────────────────────────────────────────────────────────────────────────┘ │
|
|
194
|
+
└────────┬─────────────────────────────────────────────────────────────────────┘
|
|
195
|
+
│
|
|
196
|
+
▼
|
|
197
|
+
┌──────────────────────────────────────────────────────────────────────────────┐
|
|
198
|
+
│ @CommandHandler(WithdrawCommand) │
|
|
199
|
+
│ class WithdrawHandler { │
|
|
200
|
+
│ async execute(cmd: WithdrawCommand) { │
|
|
201
|
+
│ // Safe! No race conditions - guaranteed sequential execution │
|
|
202
|
+
│ const balance = await this.repo.getBalance(cmd.accountId); │
|
|
203
|
+
│ if (balance < cmd.amount) throw new InsufficientFundsError(); │
|
|
204
|
+
│ await this.repo.debit(cmd.accountId, cmd.amount); │
|
|
205
|
+
│ } │
|
|
206
|
+
│ } │
|
|
207
|
+
└──────────────────────────────────────────────────────────────────────────────┘
|
|
188
208
|
```
|
|
189
209
|
|
|
190
210
|
---
|
|
@@ -300,145 +320,262 @@ export class OrderScaler {
|
|
|
300
320
|
|
|
301
321
|
## Complete Example
|
|
302
322
|
|
|
303
|
-
A
|
|
323
|
+
A banking service handling critical financial transactions where race conditions could cause overdrafts or double-spending:
|
|
304
324
|
|
|
305
325
|
```typescript
|
|
306
326
|
// ─────────────────────────────────────────────────────────────────
|
|
307
|
-
// commands/
|
|
327
|
+
// commands/withdraw.command.ts
|
|
328
|
+
// ─────────────────────────────────────────────────────────────────
|
|
329
|
+
export class WithdrawCommand {
|
|
330
|
+
constructor(
|
|
331
|
+
public readonly accountId: string,
|
|
332
|
+
public readonly amount: number,
|
|
333
|
+
public readonly transactionId: string,
|
|
334
|
+
public readonly requestedBy: string,
|
|
335
|
+
) {}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// ─────────────────────────────────────────────────────────────────
|
|
339
|
+
// commands/deposit.command.ts
|
|
308
340
|
// ─────────────────────────────────────────────────────────────────
|
|
309
|
-
export class
|
|
341
|
+
export class DepositCommand {
|
|
310
342
|
constructor(
|
|
311
|
-
public readonly
|
|
312
|
-
public readonly
|
|
313
|
-
public readonly
|
|
314
|
-
public readonly
|
|
343
|
+
public readonly accountId: string,
|
|
344
|
+
public readonly amount: number,
|
|
345
|
+
public readonly transactionId: string,
|
|
346
|
+
public readonly source: string,
|
|
315
347
|
) {}
|
|
316
348
|
}
|
|
317
349
|
|
|
318
350
|
// ─────────────────────────────────────────────────────────────────
|
|
319
|
-
// commands/
|
|
351
|
+
// commands/transfer.command.ts
|
|
320
352
|
// ─────────────────────────────────────────────────────────────────
|
|
321
|
-
export class
|
|
353
|
+
export class TransferCommand {
|
|
322
354
|
constructor(
|
|
323
|
-
public readonly
|
|
324
|
-
public readonly
|
|
355
|
+
public readonly accountId: string, // Source account (for queue routing)
|
|
356
|
+
public readonly toAccountId: string,
|
|
357
|
+
public readonly amount: number,
|
|
358
|
+
public readonly transactionId: string,
|
|
325
359
|
) {}
|
|
326
360
|
}
|
|
327
361
|
|
|
328
362
|
// ─────────────────────────────────────────────────────────────────
|
|
329
|
-
// handlers/
|
|
363
|
+
// handlers/withdraw.handler.ts
|
|
330
364
|
// ─────────────────────────────────────────────────────────────────
|
|
331
365
|
import { CommandHandler, ICommandHandler } from '@nestjs/cqrs';
|
|
332
|
-
import {
|
|
366
|
+
import { WithdrawCommand } from '../commands';
|
|
333
367
|
|
|
334
|
-
@CommandHandler(
|
|
335
|
-
export class
|
|
336
|
-
constructor(
|
|
368
|
+
@CommandHandler(WithdrawCommand)
|
|
369
|
+
export class WithdrawHandler implements ICommandHandler<WithdrawCommand> {
|
|
370
|
+
constructor(
|
|
371
|
+
private readonly accountRepo: AccountRepository,
|
|
372
|
+
private readonly ledger: LedgerService,
|
|
373
|
+
) {}
|
|
337
374
|
|
|
338
|
-
async execute(command:
|
|
339
|
-
const {
|
|
375
|
+
async execute(command: WithdrawCommand) {
|
|
376
|
+
const { accountId, amount, transactionId } = command;
|
|
377
|
+
|
|
378
|
+
// SAFE: No race conditions! This handler runs sequentially per account
|
|
379
|
+
// Even if 10 withdrawals arrive simultaneously, they execute one-by-one
|
|
380
|
+
|
|
381
|
+
const account = await this.accountRepo.findById(accountId);
|
|
382
|
+
|
|
383
|
+
if (account.balance < amount) {
|
|
384
|
+
throw new InsufficientFundsError(accountId, account.balance, amount);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
if (account.status !== 'active') {
|
|
388
|
+
throw new AccountFrozenError(accountId);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// Debit the account
|
|
392
|
+
account.balance -= amount;
|
|
393
|
+
await this.accountRepo.save(account);
|
|
340
394
|
|
|
341
|
-
//
|
|
342
|
-
await this.
|
|
395
|
+
// Record in ledger
|
|
396
|
+
await this.ledger.record({
|
|
397
|
+
transactionId,
|
|
398
|
+
accountId,
|
|
399
|
+
type: 'DEBIT',
|
|
400
|
+
amount,
|
|
401
|
+
balanceAfter: account.balance,
|
|
402
|
+
timestamp: new Date(),
|
|
403
|
+
});
|
|
343
404
|
|
|
344
|
-
return {
|
|
405
|
+
return {
|
|
406
|
+
success: true,
|
|
407
|
+
transactionId,
|
|
408
|
+
newBalance: account.balance
|
|
409
|
+
};
|
|
345
410
|
}
|
|
346
411
|
}
|
|
347
412
|
|
|
348
413
|
// ─────────────────────────────────────────────────────────────────
|
|
349
|
-
// handlers/
|
|
414
|
+
// handlers/transfer.handler.ts
|
|
350
415
|
// ─────────────────────────────────────────────────────────────────
|
|
351
416
|
import { CommandHandler, ICommandHandler } from '@nestjs/cqrs';
|
|
352
|
-
import {
|
|
417
|
+
import { TransferCommand, DepositCommand } from '../commands';
|
|
418
|
+
import { QueueBus } from 'atomic-queues';
|
|
353
419
|
|
|
354
|
-
@CommandHandler(
|
|
355
|
-
export class
|
|
356
|
-
constructor(
|
|
420
|
+
@CommandHandler(TransferCommand)
|
|
421
|
+
export class TransferHandler implements ICommandHandler<TransferCommand> {
|
|
422
|
+
constructor(
|
|
423
|
+
private readonly accountRepo: AccountRepository,
|
|
424
|
+
private readonly queueBus: QueueBus,
|
|
425
|
+
) {}
|
|
357
426
|
|
|
358
|
-
async execute(command:
|
|
359
|
-
const {
|
|
427
|
+
async execute(command: TransferCommand) {
|
|
428
|
+
const { accountId, toAccountId, amount, transactionId } = command;
|
|
360
429
|
|
|
361
|
-
|
|
430
|
+
// Step 1: Debit source account (already in source account's queue)
|
|
431
|
+
const sourceAccount = await this.accountRepo.findById(accountId);
|
|
362
432
|
|
|
363
|
-
|
|
433
|
+
if (sourceAccount.balance < amount) {
|
|
434
|
+
throw new InsufficientFundsError(accountId, sourceAccount.balance, amount);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
sourceAccount.balance -= amount;
|
|
438
|
+
await this.accountRepo.save(sourceAccount);
|
|
439
|
+
|
|
440
|
+
// Step 2: Queue credit to destination account (different queue!)
|
|
441
|
+
// This ensures the destination account also processes atomically
|
|
442
|
+
await this.queueBus
|
|
443
|
+
.forProcessor(AccountProcessor)
|
|
444
|
+
.enqueue(new DepositCommand(
|
|
445
|
+
toAccountId,
|
|
446
|
+
amount,
|
|
447
|
+
transactionId,
|
|
448
|
+
`transfer:${accountId}`,
|
|
449
|
+
));
|
|
450
|
+
|
|
451
|
+
return { success: true, transactionId };
|
|
364
452
|
}
|
|
365
453
|
}
|
|
366
454
|
|
|
367
455
|
// ─────────────────────────────────────────────────────────────────
|
|
368
|
-
//
|
|
456
|
+
// account.processor.ts
|
|
369
457
|
// ─────────────────────────────────────────────────────────────────
|
|
370
458
|
import { Injectable } from '@nestjs/common';
|
|
371
459
|
import { WorkerProcessor } from 'atomic-queues';
|
|
372
460
|
|
|
373
461
|
@WorkerProcessor({
|
|
374
|
-
entityType: '
|
|
375
|
-
queueName: (
|
|
376
|
-
workerName: (
|
|
462
|
+
entityType: 'account',
|
|
463
|
+
queueName: (accountId) => `bank-account-${accountId}-queue`,
|
|
464
|
+
workerName: (accountId) => `bank-account-${accountId}-worker`,
|
|
465
|
+
workerConfig: {
|
|
466
|
+
concurrency: 1, // CRITICAL: Must be 1 for financial transactions
|
|
467
|
+
lockDuration: 60000, // 60s lock for long transactions
|
|
468
|
+
stalledInterval: 5000,
|
|
469
|
+
},
|
|
377
470
|
})
|
|
378
471
|
@Injectable()
|
|
379
|
-
export class
|
|
472
|
+
export class AccountProcessor {}
|
|
380
473
|
|
|
381
474
|
// ─────────────────────────────────────────────────────────────────
|
|
382
|
-
//
|
|
475
|
+
// account.scaler.ts - Scale workers based on active accounts
|
|
476
|
+
// ─────────────────────────────────────────────────────────────────
|
|
477
|
+
import { Injectable } from '@nestjs/common';
|
|
478
|
+
import { EntityScaler, GetActiveEntities, GetDesiredWorkerCount } from 'atomic-queues';
|
|
479
|
+
|
|
480
|
+
@EntityScaler({
|
|
481
|
+
entityType: 'account',
|
|
482
|
+
maxWorkersPerEntity: 1, // Never more than 1 worker per account
|
|
483
|
+
})
|
|
484
|
+
@Injectable()
|
|
485
|
+
export class AccountScaler {
|
|
486
|
+
constructor(private readonly accountRepo: AccountRepository) {}
|
|
487
|
+
|
|
488
|
+
@GetActiveEntities()
|
|
489
|
+
async getActiveAccounts(): Promise<string[]> {
|
|
490
|
+
// Return accounts with pending transactions
|
|
491
|
+
return this.accountRepo.findAccountsWithPendingTransactions();
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
@GetDesiredWorkerCount()
|
|
495
|
+
async getWorkerCount(accountId: string): Promise<number> {
|
|
496
|
+
// Always 1 worker per account for atomicity
|
|
497
|
+
return 1;
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
// ─────────────────────────────────────────────────────────────────
|
|
502
|
+
// account.module.ts
|
|
383
503
|
// ─────────────────────────────────────────────────────────────────
|
|
384
504
|
import { Module } from '@nestjs/common';
|
|
385
505
|
import { CqrsModule } from '@nestjs/cqrs';
|
|
386
|
-
import { DocumentProcessor } from './document.processor';
|
|
387
|
-
import { DocumentController } from './document.controller';
|
|
388
|
-
import { UpdateDocumentHandler, PublishDocumentHandler } from './handlers';
|
|
389
506
|
|
|
390
507
|
@Module({
|
|
391
508
|
imports: [CqrsModule],
|
|
392
509
|
providers: [
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
510
|
+
AccountProcessor,
|
|
511
|
+
AccountScaler,
|
|
512
|
+
WithdrawHandler, // Commands auto-discovered!
|
|
513
|
+
DepositHandler,
|
|
514
|
+
TransferHandler,
|
|
396
515
|
],
|
|
397
|
-
controllers: [
|
|
516
|
+
controllers: [AccountController],
|
|
398
517
|
})
|
|
399
|
-
export class
|
|
518
|
+
export class AccountModule {}
|
|
400
519
|
|
|
401
520
|
// ─────────────────────────────────────────────────────────────────
|
|
402
|
-
//
|
|
521
|
+
// account.controller.ts
|
|
403
522
|
// ─────────────────────────────────────────────────────────────────
|
|
404
523
|
import { Controller, Post, Body, Param } from '@nestjs/common';
|
|
405
524
|
import { QueueBus } from 'atomic-queues';
|
|
406
|
-
import {
|
|
407
|
-
import {
|
|
525
|
+
import { AccountProcessor } from './account.processor';
|
|
526
|
+
import { WithdrawCommand, DepositCommand, TransferCommand } from './commands';
|
|
527
|
+
import { v4 as uuid } from 'uuid';
|
|
408
528
|
|
|
409
|
-
@Controller('
|
|
410
|
-
export class
|
|
529
|
+
@Controller('accounts')
|
|
530
|
+
export class AccountController {
|
|
411
531
|
constructor(private readonly queueBus: QueueBus) {}
|
|
412
532
|
|
|
413
|
-
@Post(':
|
|
414
|
-
async
|
|
415
|
-
@Param('
|
|
416
|
-
@Body() body: {
|
|
533
|
+
@Post(':accountId/withdraw')
|
|
534
|
+
async withdraw(
|
|
535
|
+
@Param('accountId') accountId: string,
|
|
536
|
+
@Body() body: { amount: number; requestedBy: string },
|
|
417
537
|
) {
|
|
418
|
-
|
|
419
|
-
|
|
538
|
+
const transactionId = uuid();
|
|
539
|
+
|
|
540
|
+
// Even if user spam-clicks "Withdraw", each request is queued
|
|
541
|
+
// and processed sequentially - no double-withdrawals possible
|
|
420
542
|
await this.queueBus
|
|
421
|
-
.forProcessor(
|
|
422
|
-
.enqueue(new
|
|
423
|
-
|
|
424
|
-
body.
|
|
425
|
-
|
|
426
|
-
body.
|
|
543
|
+
.forProcessor(AccountProcessor)
|
|
544
|
+
.enqueue(new WithdrawCommand(
|
|
545
|
+
accountId,
|
|
546
|
+
body.amount,
|
|
547
|
+
transactionId,
|
|
548
|
+
body.requestedBy,
|
|
427
549
|
));
|
|
428
550
|
|
|
429
|
-
return {
|
|
551
|
+
return {
|
|
552
|
+
queued: true,
|
|
553
|
+
transactionId,
|
|
554
|
+
message: 'Withdrawal queued for processing',
|
|
555
|
+
};
|
|
430
556
|
}
|
|
431
557
|
|
|
432
|
-
@Post(':
|
|
433
|
-
async
|
|
434
|
-
@Param('
|
|
435
|
-
@Body() body: {
|
|
558
|
+
@Post(':accountId/transfer')
|
|
559
|
+
async transfer(
|
|
560
|
+
@Param('accountId') accountId: string,
|
|
561
|
+
@Body() body: { toAccountId: string; amount: number },
|
|
436
562
|
) {
|
|
563
|
+
const transactionId = uuid();
|
|
564
|
+
|
|
437
565
|
await this.queueBus
|
|
438
|
-
.forProcessor(
|
|
439
|
-
.enqueue(new
|
|
566
|
+
.forProcessor(AccountProcessor)
|
|
567
|
+
.enqueue(new TransferCommand(
|
|
568
|
+
accountId,
|
|
569
|
+
body.toAccountId,
|
|
570
|
+
body.amount,
|
|
571
|
+
transactionId,
|
|
572
|
+
));
|
|
440
573
|
|
|
441
|
-
return {
|
|
574
|
+
return {
|
|
575
|
+
queued: true,
|
|
576
|
+
transactionId,
|
|
577
|
+
message: 'Transfer queued for processing',
|
|
578
|
+
};
|
|
442
579
|
}
|
|
443
580
|
}
|
|
444
581
|
```
|
|
@@ -5,6 +5,7 @@ import { WorkerManagerService } from '../worker-manager';
|
|
|
5
5
|
import { QueueManagerService } from '../queue-manager';
|
|
6
6
|
import { CronManagerService } from '../cron-manager';
|
|
7
7
|
import { CommandDiscoveryService } from '../command-discovery';
|
|
8
|
+
import { ServiceQueueManager } from '../service-queue';
|
|
8
9
|
import { IAtomicQueuesModuleConfig } from '../../domain';
|
|
9
10
|
interface ICommandBus {
|
|
10
11
|
execute<T>(command: T): Promise<any>;
|
|
@@ -81,6 +82,7 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
|
|
|
81
82
|
private readonly queueManager;
|
|
82
83
|
private readonly cronManager;
|
|
83
84
|
private readonly commandDiscovery;
|
|
85
|
+
private readonly serviceQueueManager;
|
|
84
86
|
private readonly config;
|
|
85
87
|
private readonly logger;
|
|
86
88
|
private readonly processors;
|
|
@@ -88,7 +90,7 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
|
|
|
88
90
|
private readonly activeWorkers;
|
|
89
91
|
private commandBus;
|
|
90
92
|
private queryBus;
|
|
91
|
-
constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, moduleRef: ModuleRef, workerManager: WorkerManagerService, queueManager: QueueManagerService, cronManager: CronManagerService, commandDiscovery: CommandDiscoveryService, config: IAtomicQueuesModuleConfig);
|
|
93
|
+
constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, moduleRef: ModuleRef, workerManager: WorkerManagerService, queueManager: QueueManagerService, cronManager: CronManagerService, commandDiscovery: CommandDiscoveryService, serviceQueueManager: ServiceQueueManager, config: IAtomicQueuesModuleConfig);
|
|
92
94
|
/**
|
|
93
95
|
* Set the CommandBus for executing commands from QueueBus registry
|
|
94
96
|
*/
|
|
@@ -98,6 +100,11 @@ export declare class ProcessorDiscoveryService implements OnModuleInit {
|
|
|
98
100
|
*/
|
|
99
101
|
setQueryBus(queryBus: IQueryBus): void;
|
|
100
102
|
onModuleInit(): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Register spawn worker handler with ServiceQueueManager
|
|
105
|
+
* This allows workers to be spawned on-demand via the service queue
|
|
106
|
+
*/
|
|
107
|
+
private registerSpawnWorkerHandler;
|
|
101
108
|
/**
|
|
102
109
|
* Auto-discover and register commands/queries from @nestjs/cqrs handlers
|
|
103
110
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-discovery.service.d.ts","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EACZ,IAAI,EAGL,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG5E,OAAO,EAQL,sBAAsB,EACtB,mBAAmB,EAKpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"processor-discovery.service.d.ts","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ const worker_manager_1 = require("../worker-manager");
|
|
|
21
21
|
const queue_manager_1 = require("../queue-manager");
|
|
22
22
|
const cron_manager_1 = require("../cron-manager");
|
|
23
23
|
const command_discovery_1 = require("../command-discovery");
|
|
24
|
+
const service_queue_1 = require("../service-queue");
|
|
24
25
|
const queue_bus_1 = require("../queue-bus");
|
|
25
26
|
const constants_1 = require("../constants");
|
|
26
27
|
/**
|
|
@@ -54,7 +55,7 @@ const constants_1 = require("../constants");
|
|
|
54
55
|
* ```
|
|
55
56
|
*/
|
|
56
57
|
let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDiscoveryService {
|
|
57
|
-
constructor(discoveryService, metadataScanner, moduleRef, workerManager, queueManager, cronManager, commandDiscovery, config) {
|
|
58
|
+
constructor(discoveryService, metadataScanner, moduleRef, workerManager, queueManager, cronManager, commandDiscovery, serviceQueueManager, config) {
|
|
58
59
|
this.discoveryService = discoveryService;
|
|
59
60
|
this.metadataScanner = metadataScanner;
|
|
60
61
|
this.moduleRef = moduleRef;
|
|
@@ -62,6 +63,7 @@ let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDis
|
|
|
62
63
|
this.queueManager = queueManager;
|
|
63
64
|
this.cronManager = cronManager;
|
|
64
65
|
this.commandDiscovery = commandDiscovery;
|
|
66
|
+
this.serviceQueueManager = serviceQueueManager;
|
|
65
67
|
this.config = config;
|
|
66
68
|
this.logger = new common_1.Logger(ProcessorDiscoveryService_1.name);
|
|
67
69
|
this.processors = new Map();
|
|
@@ -98,11 +100,26 @@ let ProcessorDiscoveryService = ProcessorDiscoveryService_1 = class ProcessorDis
|
|
|
98
100
|
await this.discoverProcessors();
|
|
99
101
|
await this.discoverScalers();
|
|
100
102
|
await this.registerScalersWithCronManager();
|
|
103
|
+
await this.registerSpawnWorkerHandler();
|
|
101
104
|
// Auto-register commands from CQRS handlers (default: true)
|
|
102
105
|
if (this.config.autoRegisterCommands !== false) {
|
|
103
106
|
this.autoRegisterCommandsFromCqrs();
|
|
104
107
|
}
|
|
105
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Register spawn worker handler with ServiceQueueManager
|
|
111
|
+
* This allows workers to be spawned on-demand via the service queue
|
|
112
|
+
*/
|
|
113
|
+
async registerSpawnWorkerHandler() {
|
|
114
|
+
if (!this.serviceQueueManager) {
|
|
115
|
+
this.logger.debug('ServiceQueueManager not available, skipping spawn handler registration');
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.serviceQueueManager.registerSpawnWorkerHandler(async (entityType, entityId) => {
|
|
119
|
+
await this.createWorkerForEntity(entityType, entityId);
|
|
120
|
+
});
|
|
121
|
+
this.logger.debug('Spawn worker handler registered with ServiceQueueManager');
|
|
122
|
+
}
|
|
106
123
|
/**
|
|
107
124
|
* Auto-discover and register commands/queries from @nestjs/cqrs handlers
|
|
108
125
|
*/
|
|
@@ -450,13 +467,15 @@ exports.ProcessorDiscoveryService = ProcessorDiscoveryService = ProcessorDiscove
|
|
|
450
467
|
__param(1, (0, common_1.Optional)()),
|
|
451
468
|
__param(5, (0, common_1.Optional)()),
|
|
452
469
|
__param(6, (0, common_1.Optional)()),
|
|
453
|
-
__param(7, (0, common_1.
|
|
470
|
+
__param(7, (0, common_1.Optional)()),
|
|
471
|
+
__param(8, (0, common_1.Inject)(constants_1.ATOMIC_QUEUES_CONFIG)),
|
|
454
472
|
__metadata("design:paramtypes", [core_1.DiscoveryService,
|
|
455
473
|
core_1.MetadataScanner,
|
|
456
474
|
core_1.ModuleRef,
|
|
457
475
|
worker_manager_1.WorkerManagerService,
|
|
458
476
|
queue_manager_1.QueueManagerService,
|
|
459
477
|
cron_manager_1.CronManagerService,
|
|
460
|
-
command_discovery_1.CommandDiscoveryService,
|
|
478
|
+
command_discovery_1.CommandDiscoveryService,
|
|
479
|
+
service_queue_1.ServiceQueueManager, Object])
|
|
461
480
|
], ProcessorDiscoveryService);
|
|
462
481
|
//# sourceMappingURL=processor-discovery.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor-discovery.service.js","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"processor-discovery.service.js","sourceRoot":"","sources":["../../../src/services/processor-discovery/processor-discovery.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atomic-queues",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.6",
|
|
4
4
|
"description": "A plug-and-play NestJS library for atomic process handling per entity with BullMQ, Redis distributed locking, and dynamic worker management",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|