@venturekit/runtime 0.0.0-dev.20260329113511 → 0.0.0-dev.20260414153924
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/handler/context.d.ts.map +1 -1
- package/dist/handler/context.js +3 -0
- package/dist/handler/context.js.map +1 -1
- package/dist/patterns/idempotency.d.ts +66 -1
- package/dist/patterns/idempotency.d.ts.map +1 -1
- package/dist/patterns/idempotency.js +120 -0
- package/dist/patterns/idempotency.js.map +1 -1
- package/dist/patterns/queue.d.ts +72 -0
- package/dist/patterns/queue.d.ts.map +1 -0
- package/dist/patterns/queue.js +220 -0
- package/dist/patterns/queue.js.map +1 -0
- package/dist/patterns.d.ts +4 -2
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +3 -1
- package/dist/patterns.js.map +1 -1
- package/package.json +9 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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"}
|
package/dist/handler/context.js
CHANGED
|
@@ -56,6 +56,8 @@ export function buildContext(event, options) {
|
|
|
56
56
|
// Detect internal invocation from x-venturekit-source header
|
|
57
57
|
const isInternal = event.headers?.['x-venturekit-source'] === 'internal';
|
|
58
58
|
const invokeId = event.headers?.['x-venturekit-invoke-id'] || undefined;
|
|
59
|
+
// Extract trace ID from incoming headers (propagated by invoke())
|
|
60
|
+
const traceId = event.headers?.['x-trace-id'] || undefined;
|
|
59
61
|
return {
|
|
60
62
|
requestId: event.requestContext?.requestId || crypto.randomUUID(),
|
|
61
63
|
timestamp: new Date(),
|
|
@@ -68,6 +70,7 @@ export function buildContext(event, options) {
|
|
|
68
70
|
locale: extractLocale(event, options.supportedLocales, options.defaultLocale),
|
|
69
71
|
rawEvent: event,
|
|
70
72
|
queryParams: event.queryStringParameters,
|
|
73
|
+
traceId,
|
|
71
74
|
intentOutputs,
|
|
72
75
|
isInternal,
|
|
73
76
|
invokeId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Storage backend is pluggable (DynamoDB, Postgres, in-memory, etc.).
|
|
9
9
|
*/
|
|
10
|
-
import type { RequestContext } from '../handler/context.js';
|
|
10
|
+
import type { BaseContext, RequestContext } from '../handler/context.js';
|
|
11
11
|
import type { Middleware } from '../middleware/middleware.js';
|
|
12
12
|
/**
|
|
13
13
|
* Stored idempotency record
|
|
@@ -147,6 +147,71 @@ export declare class MissingIdempotencyKeyError extends Error {
|
|
|
147
147
|
readonly code = "MISSING_IDEMPOTENCY_KEY";
|
|
148
148
|
constructor();
|
|
149
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Key extractor for task events (queue consumers, standalone functions).
|
|
152
|
+
*/
|
|
153
|
+
export type TaskIdempotencyKeyExtractor<TEvent = unknown> = (event: TEvent) => string | null;
|
|
154
|
+
/**
|
|
155
|
+
* Extract idempotency key from an SQS message ID.
|
|
156
|
+
*
|
|
157
|
+
* SQS guarantees unique messageId per delivery. When a message is retried
|
|
158
|
+
* (returned to the queue after visibility timeout), it gets the **same**
|
|
159
|
+
* messageId, making it a natural idempotency key.
|
|
160
|
+
*
|
|
161
|
+
* Works with both single-message and batch invocations (uses first record).
|
|
162
|
+
*/
|
|
163
|
+
export declare function sqsMessageIdExtractor(): TaskIdempotencyKeyExtractor;
|
|
164
|
+
/**
|
|
165
|
+
* Extract idempotency key from a specific field in the event payload.
|
|
166
|
+
*/
|
|
167
|
+
export declare function eventFieldKeyExtractor<TEvent = unknown>(fieldName: string): TaskIdempotencyKeyExtractor<TEvent>;
|
|
168
|
+
/**
|
|
169
|
+
* Task idempotency middleware options.
|
|
170
|
+
*/
|
|
171
|
+
export interface TaskIdempotencyOptions<TEvent = unknown> {
|
|
172
|
+
/** Storage backend for idempotency records */
|
|
173
|
+
store: IdempotencyStore;
|
|
174
|
+
/**
|
|
175
|
+
* Extract the idempotency key from the event.
|
|
176
|
+
* Default: `sqsMessageIdExtractor()` — reads SQS messageId.
|
|
177
|
+
*/
|
|
178
|
+
keyExtractor?: TaskIdempotencyKeyExtractor<TEvent>;
|
|
179
|
+
/** TTL in seconds for idempotency records (default: 86400 = 24h) */
|
|
180
|
+
ttlSeconds?: number;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Idempotency middleware for task handlers (queue consumers, functions).
|
|
184
|
+
*
|
|
185
|
+
* Ensures that duplicate invocations (e.g., SQS re-deliveries) are
|
|
186
|
+
* handled exactly once. On duplicate, the cached result is returned
|
|
187
|
+
* without re-executing the handler.
|
|
188
|
+
*
|
|
189
|
+
* ## How it works with queue retries
|
|
190
|
+
*
|
|
191
|
+
* When SQS re-delivers a message (after visibility timeout), the messageId
|
|
192
|
+
* stays the same. This middleware detects the duplicate and returns the
|
|
193
|
+
* cached result, preventing side effects from running twice.
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* import { taskHandler } from '@venturekit/runtime';
|
|
198
|
+
* import { taskIdempotencyMiddleware, createDefaultIdempotencyStore } from '@venturekit/runtime/patterns';
|
|
199
|
+
*
|
|
200
|
+
* const store = await createDefaultIdempotencyStore();
|
|
201
|
+
*
|
|
202
|
+
* export const main = taskHandler(
|
|
203
|
+
* async (event, ctx, logger) => {
|
|
204
|
+
* // This only runs once per unique messageId
|
|
205
|
+
* await chargeCustomer(event.orderId, event.amount);
|
|
206
|
+
* return { charged: true };
|
|
207
|
+
* },
|
|
208
|
+
* {
|
|
209
|
+
* middleware: [taskIdempotencyMiddleware({ store })],
|
|
210
|
+
* },
|
|
211
|
+
* );
|
|
212
|
+
* ```
|
|
213
|
+
*/
|
|
214
|
+
export declare function taskIdempotencyMiddleware<TEvent = unknown>(options: TaskIdempotencyOptions<TEvent>): Middleware<BaseContext>;
|
|
150
215
|
/**
|
|
151
216
|
* Options for the default idempotency store.
|
|
152
217
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/patterns/idempotency.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"idempotency.d.ts","sourceRoot":"","sources":["../../src/patterns/idempotency.ts"],"names":[],"mappings":"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"}
|
|
@@ -278,6 +278,126 @@ export class MissingIdempotencyKeyError extends Error {
|
|
|
278
278
|
this.name = 'MissingIdempotencyKeyError';
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Extract idempotency key from an SQS message ID.
|
|
283
|
+
*
|
|
284
|
+
* SQS guarantees unique messageId per delivery. When a message is retried
|
|
285
|
+
* (returned to the queue after visibility timeout), it gets the **same**
|
|
286
|
+
* messageId, making it a natural idempotency key.
|
|
287
|
+
*
|
|
288
|
+
* Works with both single-message and batch invocations (uses first record).
|
|
289
|
+
*/
|
|
290
|
+
export function sqsMessageIdExtractor() {
|
|
291
|
+
return (event) => {
|
|
292
|
+
// SQS batch event: { Records: [{ messageId, body, ... }] }
|
|
293
|
+
if (event?.Records?.[0]?.messageId) {
|
|
294
|
+
return event.Records[0].messageId;
|
|
295
|
+
}
|
|
296
|
+
// Single message forwarded by VentureKit dev server (has __messageId)
|
|
297
|
+
if (event?.__messageId) {
|
|
298
|
+
return event.__messageId;
|
|
299
|
+
}
|
|
300
|
+
return null;
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Extract idempotency key from a specific field in the event payload.
|
|
305
|
+
*/
|
|
306
|
+
export function eventFieldKeyExtractor(fieldName) {
|
|
307
|
+
return (event) => {
|
|
308
|
+
if (typeof event === 'object' && event !== null && fieldName in event) {
|
|
309
|
+
const value = event[fieldName];
|
|
310
|
+
return typeof value === 'string' ? value : String(value);
|
|
311
|
+
}
|
|
312
|
+
return null;
|
|
313
|
+
};
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Idempotency middleware for task handlers (queue consumers, functions).
|
|
317
|
+
*
|
|
318
|
+
* Ensures that duplicate invocations (e.g., SQS re-deliveries) are
|
|
319
|
+
* handled exactly once. On duplicate, the cached result is returned
|
|
320
|
+
* without re-executing the handler.
|
|
321
|
+
*
|
|
322
|
+
* ## How it works with queue retries
|
|
323
|
+
*
|
|
324
|
+
* When SQS re-delivers a message (after visibility timeout), the messageId
|
|
325
|
+
* stays the same. This middleware detects the duplicate and returns the
|
|
326
|
+
* cached result, preventing side effects from running twice.
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```typescript
|
|
330
|
+
* import { taskHandler } from '@venturekit/runtime';
|
|
331
|
+
* import { taskIdempotencyMiddleware, createDefaultIdempotencyStore } from '@venturekit/runtime/patterns';
|
|
332
|
+
*
|
|
333
|
+
* const store = await createDefaultIdempotencyStore();
|
|
334
|
+
*
|
|
335
|
+
* export const main = taskHandler(
|
|
336
|
+
* async (event, ctx, logger) => {
|
|
337
|
+
* // This only runs once per unique messageId
|
|
338
|
+
* await chargeCustomer(event.orderId, event.amount);
|
|
339
|
+
* return { charged: true };
|
|
340
|
+
* },
|
|
341
|
+
* {
|
|
342
|
+
* middleware: [taskIdempotencyMiddleware({ store })],
|
|
343
|
+
* },
|
|
344
|
+
* );
|
|
345
|
+
* ```
|
|
346
|
+
*/
|
|
347
|
+
export function taskIdempotencyMiddleware(options) {
|
|
348
|
+
const { store, keyExtractor = sqsMessageIdExtractor(), ttlSeconds = 86400, } = options;
|
|
349
|
+
return {
|
|
350
|
+
name: 'task-idempotency',
|
|
351
|
+
fn: async (ctx, next) => {
|
|
352
|
+
const event = ctx.event;
|
|
353
|
+
const key = keyExtractor(event);
|
|
354
|
+
if (!key) {
|
|
355
|
+
// No idempotency key — pass through
|
|
356
|
+
return next();
|
|
357
|
+
}
|
|
358
|
+
// Check for existing record
|
|
359
|
+
const existing = await store.get(key);
|
|
360
|
+
if (existing) {
|
|
361
|
+
if (existing.status === 'completed') {
|
|
362
|
+
// Return cached result — skip handler execution
|
|
363
|
+
try {
|
|
364
|
+
return JSON.parse(existing.response);
|
|
365
|
+
}
|
|
366
|
+
catch {
|
|
367
|
+
return existing.response;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (existing.status === 'pending') {
|
|
371
|
+
// Concurrent execution — this shouldn't happen with SQS
|
|
372
|
+
// but could with async Lambda invocations
|
|
373
|
+
throw new IdempotencyConflictError(key);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// Save pending record
|
|
377
|
+
const record = {
|
|
378
|
+
key,
|
|
379
|
+
response: '',
|
|
380
|
+
status: 'pending',
|
|
381
|
+
expiresAt: Date.now() + (ttlSeconds * 1000),
|
|
382
|
+
};
|
|
383
|
+
await store.save(record);
|
|
384
|
+
try {
|
|
385
|
+
const result = await next();
|
|
386
|
+
// Store completed result
|
|
387
|
+
await store.update(key, {
|
|
388
|
+
status: 'completed',
|
|
389
|
+
response: JSON.stringify(result),
|
|
390
|
+
});
|
|
391
|
+
return result;
|
|
392
|
+
}
|
|
393
|
+
catch (error) {
|
|
394
|
+
// Delete record so the message can be retried
|
|
395
|
+
await store.delete(key);
|
|
396
|
+
throw error;
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
};
|
|
400
|
+
}
|
|
281
401
|
/**
|
|
282
402
|
* Create an idempotency store with sensible defaults.
|
|
283
403
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/patterns/idempotency.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/patterns/idempotency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VentureKit Queue Client
|
|
3
|
+
*
|
|
4
|
+
* Type-safe client for sending messages to SQS queues.
|
|
5
|
+
* Auto-detects local dev (Redis-backed) vs production (AWS SQS).
|
|
6
|
+
* Automatically propagates trace context for end-to-end observability.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { sendMessage, sendMessages } from '@venturekit/runtime/patterns';
|
|
11
|
+
*
|
|
12
|
+
* // Send a single message
|
|
13
|
+
* await sendMessage('notifications', {
|
|
14
|
+
* type: 'welcome',
|
|
15
|
+
* userId: 'user-123',
|
|
16
|
+
* message: 'Welcome!',
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Send a batch of messages
|
|
20
|
+
* await sendMessages('notifications', [
|
|
21
|
+
* { type: 'welcome', userId: 'user-1', message: 'Hi!' },
|
|
22
|
+
* { type: 'welcome', userId: 'user-2', message: 'Hi!' },
|
|
23
|
+
* ]);
|
|
24
|
+
*
|
|
25
|
+
* // Fire-and-forget with delay
|
|
26
|
+
* await sendMessage('notifications', payload, { delaySeconds: 60 });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import type { TraceContext } from '../logging/tracing.js';
|
|
30
|
+
/**
|
|
31
|
+
* Options for sending a queue message.
|
|
32
|
+
*/
|
|
33
|
+
export interface SendMessageOptions {
|
|
34
|
+
/** Delay delivery in seconds (0–900). Default: 0 */
|
|
35
|
+
delaySeconds?: number;
|
|
36
|
+
/** Message group ID (required for FIFO queues) */
|
|
37
|
+
messageGroupId?: string;
|
|
38
|
+
/** Message deduplication ID (FIFO queues — auto-generated if omitted) */
|
|
39
|
+
deduplicationId?: string;
|
|
40
|
+
/** Trace context to propagate (auto-detected if omitted) */
|
|
41
|
+
trace?: TraceContext;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Result of a send operation.
|
|
45
|
+
*/
|
|
46
|
+
export interface SendMessageResult {
|
|
47
|
+
/** SQS message ID (or local placeholder) */
|
|
48
|
+
messageId: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Send a single message to an SQS queue.
|
|
52
|
+
*
|
|
53
|
+
* In local dev, the message is forwarded to the dev server which invokes
|
|
54
|
+
* the queue consumer handler directly.
|
|
55
|
+
*
|
|
56
|
+
* In production, the message is sent to the SQS queue via AWS SDK.
|
|
57
|
+
* Trace context is automatically propagated via the message body.
|
|
58
|
+
*
|
|
59
|
+
* @param queueId - Queue identifier (matches `id` in infrastructure intents)
|
|
60
|
+
* @param body - Message payload (serialized to JSON)
|
|
61
|
+
* @param options - Optional delivery settings
|
|
62
|
+
*/
|
|
63
|
+
export declare function sendMessage<T = unknown>(queueId: string, body: T, options?: SendMessageOptions): Promise<SendMessageResult>;
|
|
64
|
+
/**
|
|
65
|
+
* Send a batch of messages to an SQS queue (max 10 per batch).
|
|
66
|
+
*
|
|
67
|
+
* @param queueId - Queue identifier
|
|
68
|
+
* @param messages - Array of message payloads
|
|
69
|
+
* @param options - Shared options applied to all messages
|
|
70
|
+
*/
|
|
71
|
+
export declare function sendMessages<T = unknown>(queueId: string, messages: T[], options?: SendMessageOptions): Promise<SendMessageResult[]>;
|
|
72
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../src/patterns/queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAmHD;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,OAAO,EAC3C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,EAAE,EACb,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2D9B"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VentureKit Queue Client
|
|
3
|
+
*
|
|
4
|
+
* Type-safe client for sending messages to SQS queues.
|
|
5
|
+
* Auto-detects local dev (Redis-backed) vs production (AWS SQS).
|
|
6
|
+
* Automatically propagates trace context for end-to-end observability.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { sendMessage, sendMessages } from '@venturekit/runtime/patterns';
|
|
11
|
+
*
|
|
12
|
+
* // Send a single message
|
|
13
|
+
* await sendMessage('notifications', {
|
|
14
|
+
* type: 'welcome',
|
|
15
|
+
* userId: 'user-123',
|
|
16
|
+
* message: 'Welcome!',
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Send a batch of messages
|
|
20
|
+
* await sendMessages('notifications', [
|
|
21
|
+
* { type: 'welcome', userId: 'user-1', message: 'Hi!' },
|
|
22
|
+
* { type: 'welcome', userId: 'user-2', message: 'Hi!' },
|
|
23
|
+
* ]);
|
|
24
|
+
*
|
|
25
|
+
* // Fire-and-forget with delay
|
|
26
|
+
* await sendMessage('notifications', payload, { delaySeconds: 60 });
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
import { generateId, injectTraceHeaders, createChildTrace } from '../logging/tracing.js';
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the SQS queue URL from a queue ID.
|
|
32
|
+
*
|
|
33
|
+
* Convention: `{project}-{stage}-{queueId}`
|
|
34
|
+
*
|
|
35
|
+
* In production, reads from `VENTURE_QUEUE_{ID}_URL` env var
|
|
36
|
+
* (injected by the CDK stack as a CfnOutput).
|
|
37
|
+
* Falls back to constructing the URL from account/region.
|
|
38
|
+
*/
|
|
39
|
+
function resolveQueueUrl(queueId) {
|
|
40
|
+
// Check for explicit env var first
|
|
41
|
+
const envKey = `VENTURE_QUEUE_${queueId.toUpperCase().replace(/-/g, '_')}_URL`;
|
|
42
|
+
if (process.env[envKey]) {
|
|
43
|
+
return process.env[envKey];
|
|
44
|
+
}
|
|
45
|
+
// Construct from convention
|
|
46
|
+
const project = process.env.VENTURE_PROJECT_NAME || process.env.VENTURE_APP_NAME || 'app';
|
|
47
|
+
const stage = process.env.VENTURE_STAGE || 'dev';
|
|
48
|
+
const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || 'us-east-1';
|
|
49
|
+
const accountId = process.env.AWS_ACCOUNT_ID || '000000000000';
|
|
50
|
+
const queueName = `${project}-${stage}-${queueId}`;
|
|
51
|
+
return `https://sqs.${region}.amazonaws.com/${accountId}/${queueName}`;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Build trace metadata to attach to the message body.
|
|
55
|
+
*/
|
|
56
|
+
function buildTracePayload(options) {
|
|
57
|
+
let trace;
|
|
58
|
+
if (options?.trace) {
|
|
59
|
+
trace = createChildTrace(options.trace);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// Generate a fresh trace context
|
|
63
|
+
trace = {
|
|
64
|
+
traceId: generateId(),
|
|
65
|
+
spanId: generateId(),
|
|
66
|
+
baggage: {},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return injectTraceHeaders(trace);
|
|
70
|
+
}
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// AWS SQS client (lazy-loaded)
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
let _sqsClient = null;
|
|
75
|
+
async function getSqsClient() {
|
|
76
|
+
if (!_sqsClient) {
|
|
77
|
+
const { SQSClient } = await import('@aws-sdk/client-sqs');
|
|
78
|
+
const region = process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION || 'us-east-1';
|
|
79
|
+
_sqsClient = new SQSClient({ region });
|
|
80
|
+
}
|
|
81
|
+
return _sqsClient;
|
|
82
|
+
}
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
// Local dev: POST to /_dev/queue/{queueId}
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
function isLocalDev() {
|
|
87
|
+
return process.env.VENTURE_LOCAL === 'true';
|
|
88
|
+
}
|
|
89
|
+
function getLocalServerUrl() {
|
|
90
|
+
return process.env.VENTURE_LOCAL_URL || `http://localhost:${process.env.VENTURE_LOCAL_PORT || '3000'}`;
|
|
91
|
+
}
|
|
92
|
+
async function sendLocalMessage(queueId, body, _options) {
|
|
93
|
+
const http = await import('http');
|
|
94
|
+
const baseUrl = getLocalServerUrl();
|
|
95
|
+
const url = new URL(`${baseUrl}/_dev/queue/${queueId}`);
|
|
96
|
+
const payload = JSON.stringify(body);
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
const req = http.request({
|
|
99
|
+
hostname: url.hostname,
|
|
100
|
+
port: url.port,
|
|
101
|
+
path: url.pathname,
|
|
102
|
+
method: 'POST',
|
|
103
|
+
headers: { 'content-type': 'application/json' },
|
|
104
|
+
}, (res) => {
|
|
105
|
+
const chunks = [];
|
|
106
|
+
res.on('data', (chunk) => chunks.push(chunk));
|
|
107
|
+
res.on('end', () => {
|
|
108
|
+
try {
|
|
109
|
+
const data = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
|
|
110
|
+
resolve({ messageId: data.messageId || generateId() });
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
resolve({ messageId: generateId() });
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
req.on('error', (err) => reject(new Error(`Failed to send local queue message: ${err.message}`)));
|
|
118
|
+
req.write(payload);
|
|
119
|
+
req.end();
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
// ---------------------------------------------------------------------------
|
|
123
|
+
// Public API
|
|
124
|
+
// ---------------------------------------------------------------------------
|
|
125
|
+
/**
|
|
126
|
+
* Send a single message to an SQS queue.
|
|
127
|
+
*
|
|
128
|
+
* In local dev, the message is forwarded to the dev server which invokes
|
|
129
|
+
* the queue consumer handler directly.
|
|
130
|
+
*
|
|
131
|
+
* In production, the message is sent to the SQS queue via AWS SDK.
|
|
132
|
+
* Trace context is automatically propagated via the message body.
|
|
133
|
+
*
|
|
134
|
+
* @param queueId - Queue identifier (matches `id` in infrastructure intents)
|
|
135
|
+
* @param body - Message payload (serialized to JSON)
|
|
136
|
+
* @param options - Optional delivery settings
|
|
137
|
+
*/
|
|
138
|
+
export async function sendMessage(queueId, body, options) {
|
|
139
|
+
// Attach trace context to the payload
|
|
140
|
+
const __trace = buildTracePayload(options);
|
|
141
|
+
const envelope = { ...(typeof body === 'object' && body !== null ? body : { data: body }), __trace };
|
|
142
|
+
if (isLocalDev()) {
|
|
143
|
+
return sendLocalMessage(queueId, envelope, options);
|
|
144
|
+
}
|
|
145
|
+
// Production: AWS SQS
|
|
146
|
+
const client = await getSqsClient();
|
|
147
|
+
const { SendMessageCommand } = await import('@aws-sdk/client-sqs');
|
|
148
|
+
const params = {
|
|
149
|
+
QueueUrl: resolveQueueUrl(queueId),
|
|
150
|
+
MessageBody: JSON.stringify(envelope),
|
|
151
|
+
};
|
|
152
|
+
if (options?.delaySeconds) {
|
|
153
|
+
params.DelaySeconds = options.delaySeconds;
|
|
154
|
+
}
|
|
155
|
+
if (options?.messageGroupId) {
|
|
156
|
+
params.MessageGroupId = options.messageGroupId;
|
|
157
|
+
}
|
|
158
|
+
if (options?.deduplicationId) {
|
|
159
|
+
params.MessageDeduplicationId = options.deduplicationId;
|
|
160
|
+
}
|
|
161
|
+
const result = await client.send(new SendMessageCommand(params));
|
|
162
|
+
return { messageId: result.MessageId ?? generateId() };
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Send a batch of messages to an SQS queue (max 10 per batch).
|
|
166
|
+
*
|
|
167
|
+
* @param queueId - Queue identifier
|
|
168
|
+
* @param messages - Array of message payloads
|
|
169
|
+
* @param options - Shared options applied to all messages
|
|
170
|
+
*/
|
|
171
|
+
export async function sendMessages(queueId, messages, options) {
|
|
172
|
+
if (messages.length === 0)
|
|
173
|
+
return [];
|
|
174
|
+
// SQS batch limit is 10
|
|
175
|
+
const results = [];
|
|
176
|
+
for (let i = 0; i < messages.length; i += 10) {
|
|
177
|
+
const batch = messages.slice(i, i + 10);
|
|
178
|
+
if (isLocalDev()) {
|
|
179
|
+
// Local: send one-by-one through the dev server
|
|
180
|
+
for (const msg of batch) {
|
|
181
|
+
results.push(await sendMessage(queueId, msg, options));
|
|
182
|
+
}
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
// Production: use SQS batch API
|
|
186
|
+
const client = await getSqsClient();
|
|
187
|
+
const { SendMessageBatchCommand } = await import('@aws-sdk/client-sqs');
|
|
188
|
+
const entries = batch.map((msg, idx) => {
|
|
189
|
+
const __trace = buildTracePayload(options);
|
|
190
|
+
const envelope = { ...(typeof msg === 'object' && msg !== null ? msg : { data: msg }), __trace };
|
|
191
|
+
const entry = {
|
|
192
|
+
Id: `msg-${i + idx}`,
|
|
193
|
+
MessageBody: JSON.stringify(envelope),
|
|
194
|
+
};
|
|
195
|
+
if (options?.delaySeconds) {
|
|
196
|
+
entry.DelaySeconds = options.delaySeconds;
|
|
197
|
+
}
|
|
198
|
+
if (options?.messageGroupId) {
|
|
199
|
+
entry.MessageGroupId = options.messageGroupId;
|
|
200
|
+
}
|
|
201
|
+
if (options?.deduplicationId) {
|
|
202
|
+
entry.MessageDeduplicationId = `${options.deduplicationId}-${i + idx}`;
|
|
203
|
+
}
|
|
204
|
+
return entry;
|
|
205
|
+
});
|
|
206
|
+
const result = await client.send(new SendMessageBatchCommand({
|
|
207
|
+
QueueUrl: resolveQueueUrl(queueId),
|
|
208
|
+
Entries: entries,
|
|
209
|
+
}));
|
|
210
|
+
for (const success of result.Successful ?? []) {
|
|
211
|
+
results.push({ messageId: success.MessageId ?? generateId() });
|
|
212
|
+
}
|
|
213
|
+
if (result.Failed && result.Failed.length > 0) {
|
|
214
|
+
const ids = result.Failed.map((f) => f.Id).join(', ');
|
|
215
|
+
throw new Error(`Failed to send ${result.Failed.length} messages: ${ids}`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return results;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../src/patterns/queue.ts"],"names":[],"mappings":"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"}
|
package/dist/patterns.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export { createCircuitBreaker, } from './patterns/circuit-breaker.js';
|
|
|
12
12
|
export type { CircuitBreaker, CircuitBreakerOptions, CircuitState, } from './patterns/circuit-breaker.js';
|
|
13
13
|
export { saga, parallel, createMemorySagaStore, createDynamoDBSagaStore, createDefaultSagaStore, } from './patterns/saga.js';
|
|
14
14
|
export type { SagaStep, SagaStepEntry, ParallelStepGroup, SagaStatus, SagaRecord, SagaStore, StepResult, SagaResult, SagaOptions, SagaRunOptions, SagaStepEvent, SagaCompensateEvent, SagaFailedEvent, DynamoDBSagaStoreOptions, DefaultSagaStoreOptions, } from './patterns/saga.js';
|
|
15
|
-
export {
|
|
16
|
-
export type {
|
|
15
|
+
export { sendMessage, sendMessages, } from './patterns/queue.js';
|
|
16
|
+
export type { SendMessageOptions, SendMessageResult, } from './patterns/queue.js';
|
|
17
|
+
export { idempotencyMiddleware, taskIdempotencyMiddleware, IdempotencyConflictError, MissingIdempotencyKeyError, createMemoryIdempotencyStore, createDynamoDBIdempotencyStore, createDefaultIdempotencyStore, headerKeyExtractor, bodyFieldKeyExtractor, sqsMessageIdExtractor, eventFieldKeyExtractor, } from './patterns/idempotency.js';
|
|
18
|
+
export type { IdempotencyRecord, IdempotencyStore, IdempotencyKeyExtractor, IdempotencyOptions, TaskIdempotencyKeyExtractor, TaskIdempotencyOptions, DynamoDBIdempotencyStoreOptions, DefaultIdempotencyStoreOptions, } from './patterns/idempotency.js';
|
|
17
19
|
//# sourceMappingURL=patterns.d.ts.map
|
package/dist/patterns.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC7B,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,YAAY,GACb,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC7B,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,EACtB,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,2BAA2B,CAAC"}
|
package/dist/patterns.js
CHANGED
|
@@ -12,6 +12,8 @@ export { createInvoker, defaultFunctionNameResolver, createLambdaInvoker, create
|
|
|
12
12
|
export { createCircuitBreaker, } from './patterns/circuit-breaker.js';
|
|
13
13
|
// Saga
|
|
14
14
|
export { saga, parallel, createMemorySagaStore, createDynamoDBSagaStore, createDefaultSagaStore, } from './patterns/saga.js';
|
|
15
|
+
// Queue Client
|
|
16
|
+
export { sendMessage, sendMessages, } from './patterns/queue.js';
|
|
15
17
|
// Idempotency
|
|
16
|
-
export { idempotencyMiddleware, IdempotencyConflictError, MissingIdempotencyKeyError, createMemoryIdempotencyStore, createDynamoDBIdempotencyStore, createDefaultIdempotencyStore, headerKeyExtractor, bodyFieldKeyExtractor, } from './patterns/idempotency.js';
|
|
18
|
+
export { idempotencyMiddleware, taskIdempotencyMiddleware, IdempotencyConflictError, MissingIdempotencyKeyError, createMemoryIdempotencyStore, createDynamoDBIdempotencyStore, createDefaultIdempotencyStore, headerKeyExtractor, bodyFieldKeyExtractor, sqsMessageIdExtractor, eventFieldKeyExtractor, } from './patterns/idempotency.js';
|
|
17
19
|
//# sourceMappingURL=patterns.js.map
|
package/dist/patterns.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAA8B;AAC9B,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAa9B,kBAAkB;AAClB,OAAO,EACL,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAOvC,OAAO;AACP,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAmB5B,cAAc;AACd,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC7B,kBAAkB,EAClB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8BAA8B;AAC9B,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,MAAM,EACN,YAAY,EACZ,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAa9B,kBAAkB;AAClB,OAAO,EACL,oBAAoB,GACrB,MAAM,+BAA+B,CAAC;AAOvC,OAAO;AACP,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAmB5B,eAAe;AACf,OAAO,EACL,WAAW,EACX,YAAY,GACb,MAAM,qBAAqB,CAAC;AAM7B,cAAc;AACd,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,8BAA8B,EAC9B,6BAA6B,EAC7B,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venturekit/runtime",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20260414153924",
|
|
4
4
|
"description": "VentureKit runtime utilities - handlers, context, middleware, logging",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -55,14 +55,15 @@
|
|
|
55
55
|
],
|
|
56
56
|
"license": "Apache-2.0",
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@venturekit/core": "0.0.0-dev.
|
|
58
|
+
"@venturekit/core": "0.0.0-dev.20260414153924",
|
|
59
59
|
"pino": "^9.0.0"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@venturekit/data": "0.0.0-dev.
|
|
62
|
+
"@venturekit/data": "0.0.0-dev.20260414153924",
|
|
63
63
|
"@aws-sdk/client-dynamodb": "^3.500.0",
|
|
64
64
|
"@aws-sdk/lib-dynamodb": "^3.500.0",
|
|
65
65
|
"@aws-sdk/client-lambda": "^3.500.0",
|
|
66
|
+
"@aws-sdk/client-sqs": "^3.500.0",
|
|
66
67
|
"@aws-sdk/client-apigatewaymanagementapi": "^3.500.0",
|
|
67
68
|
"zod": "^3.22.0"
|
|
68
69
|
},
|
|
@@ -79,6 +80,9 @@
|
|
|
79
80
|
"@aws-sdk/client-lambda": {
|
|
80
81
|
"optional": true
|
|
81
82
|
},
|
|
83
|
+
"@aws-sdk/client-sqs": {
|
|
84
|
+
"optional": true
|
|
85
|
+
},
|
|
82
86
|
"@aws-sdk/client-apigatewaymanagementapi": {
|
|
83
87
|
"optional": true
|
|
84
88
|
},
|
|
@@ -87,11 +91,12 @@
|
|
|
87
91
|
}
|
|
88
92
|
},
|
|
89
93
|
"devDependencies": {
|
|
90
|
-
"@venturekit/data": "0.0.0-dev.
|
|
94
|
+
"@venturekit/data": "0.0.0-dev.20260414153924",
|
|
91
95
|
"@types/aws-lambda": "^8.10.131",
|
|
92
96
|
"@types/node": "^20.10.0",
|
|
93
97
|
"@aws-sdk/client-lambda": "^3.500.0",
|
|
94
98
|
"@aws-sdk/client-ssm": "^3.500.0",
|
|
99
|
+
"@aws-sdk/client-sqs": "^3.500.0",
|
|
95
100
|
"@aws-sdk/client-secrets-manager": "^3.500.0",
|
|
96
101
|
"typescript": "^5.3.0"
|
|
97
102
|
},
|