convex-batch-processor 1.0.5 → 1.0.7

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 CHANGED
@@ -31,8 +31,8 @@ export default app;
31
31
  ### Batch Accumulator
32
32
 
33
33
  The batch accumulator collects items and flushes them based on:
34
- - **Size threshold**: Flush when `maxBatchSize` items collected
35
- - **Time interval**: Flush automatically after `flushIntervalMs` since first item was added
34
+ - **Time interval**: Flush automatically after `flushIntervalMs` (primary trigger for high-throughput small items)
35
+ - **Size threshold**: Immediate flush when a single call adds `>= maxBatchSize` items
36
36
  - **Manual trigger**: Force flush via API call
37
37
 
38
38
  ```typescript
@@ -287,7 +287,7 @@ Returned by `addItems()`:
287
287
  ```typescript
288
288
  interface BatchResult {
289
289
  batchId: string; // Same ID you passed in
290
- itemCount: number; // Total items in batch
290
+ itemCount: number; // Items added in THIS call (use getBatchStatus for total)
291
291
  flushed: boolean; // Whether batch was flushed
292
292
  status: BatchStatus; // "accumulating" | "flushing" | "completed"
293
293
  }
@@ -106,6 +106,7 @@ export declare const collectBatchItems: import("convex/server").RegisteredQuery<
106
106
  type FlushTransitionResult = {
107
107
  flushed: true;
108
108
  itemCount: number;
109
+ processBatchHandle: string;
109
110
  } | {
110
111
  flushed: false;
111
112
  reason: string;
@@ -160,7 +161,11 @@ export declare const maybeFlush: import("convex/server").RegisteredAction<"inter
160
161
  *
161
162
  * - Returns early if batch is already flushing/completed (another caller won the race)
162
163
  * - Returns early if batch is empty or below threshold (unless force=true)
163
- * - On success, atomically updates status and schedules executeFlush
164
+ * - On success, atomically updates status and returns processBatchHandle for caller to execute
165
+ *
166
+ * Note: This mutation returns the processBatchHandle instead of scheduling executeFlush.
167
+ * The calling action (maybeFlush) is responsible for calling executeFlush directly.
168
+ * This design avoids issues with scheduling actions from within component mutations.
164
169
  *
165
170
  * OCC (Optimistic Concurrency Control) note:
166
171
  * If two doFlushTransition calls race, Convex detects the conflict when both try to
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;GA2FnB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;GAwDrB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;gBA6CE,cAAc,GAAG,UAAU;;;;;;;;;UAiBtD,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;KAiCjC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;KAiB1B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;GAuCtB,CAAC;AAMH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;UAQnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GA0B5B,CAAC;AAGH,KAAK,qBAAqB,GACvB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,UAAU;;;iBAcrB,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB;;;kCAqD5B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;GA+CvB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;iBAgH5B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;iBASjC,CAAC;AAMH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;GA8C3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;GAsB3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;GAyB5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;GAuB5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;UA2B/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;KAmC3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GAmB5B,CAAC;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;UAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;UAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;eAGhB,OAAO;WACX,OAAO;qBACG,MAAM;aACd,MAAM;YACP,MAAM;iBACD,MAAM;GA+FnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAY3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;iBAcxB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAa9B,CAAC"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;GA8FnB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;GAwDrB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;gBA6CE,cAAc,GAAG,UAAU;;;;;;;;;UAiBtD,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;KAiCjC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;KAiB1B,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;GAuCtB,CAAC;AAMH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;UAQnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GA0B5B,CAAC;AAGH,KAAK,qBAAqB,GACvB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAChE;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,eAAO,MAAM,UAAU;;;iBA6BrB,CAAC;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB;;;kCAmE5B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;GAmDvB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;iBAgH5B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;iBASjC,CAAC;AAMH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;GA8C3B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;GAsB3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;GAyB5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;GAuB5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;UA2B/B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;KAmC3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;GAmB5B,CAAC;AAMH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;UAQzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;UAK7B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;eAGhB,OAAO;WACX,OAAO;qBACG,MAAM;aACd,MAAM;YACP,MAAM;iBACD,MAAM;GA+FnB,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAc5B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;iBAY3B,CAAC;AAEH,eAAO,MAAM,aAAa;;;;iBAcxB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAa9B,CAAC"}
@@ -47,7 +47,7 @@ export const addItems = mutation({
47
47
  batch = (await ctx.db.get(batchDocId));
48
48
  // Schedule timer at creation (not on every add)
49
49
  if (config.flushIntervalMs > 0) {
50
- const scheduledFlushId = await ctx.scheduler.runAfter(config.flushIntervalMs, internal.lib.scheduledIntervalFlush, { batchDocId: batch._id });
50
+ const scheduledFlushId = await ctx.scheduler.runAfter(config.flushIntervalMs, internal.lib.maybeFlush, { batchDocId: batch._id, force: true });
51
51
  await ctx.db.patch(batch._id, { scheduledFlushId });
52
52
  }
53
53
  }
@@ -58,24 +58,28 @@ export const addItems = mutation({
58
58
  itemCount: items.length,
59
59
  createdAt: now,
60
60
  });
61
- // 4. Query total count (READ only)
62
- const batchItemDocs = await ctx.db
63
- .query("batchItems")
64
- .withIndex("by_batchDocId", (q) => q.eq("batchDocId", batch._id))
65
- .collect();
66
- const totalCount = batchItemDocs.reduce((sum, doc) => sum + doc.itemCount, 0);
67
- // 5. If threshold reached, schedule background flush check (NON-BLOCKING)
68
- // DO NOT patch batch here - let maybeFlush handle it
69
- if (totalCount >= config.maxBatchSize) {
61
+ // 4. Schedule flush check ONLY if this single call could complete a batch
62
+ // DO NOT query batchItems to count - that causes OCC conflicts when
63
+ // multiple concurrent addItems all read the same index.
64
+ //
65
+ // Dual-trigger pattern:
66
+ // - SIZE trigger: items.length >= maxBatchSize (handled here)
67
+ // - TIME trigger: flushIntervalMs timer (scheduled at batch creation)
68
+ //
69
+ // For high-throughput small items, the interval timer handles flushing.
70
+ // For large single calls, we trigger immediate flush check.
71
+ if (items.length >= config.maxBatchSize) {
70
72
  await ctx.scheduler.runAfter(0, internal.lib.maybeFlush, {
71
73
  batchDocId: batch._id,
72
74
  });
73
75
  }
74
- // 6. Return success - NO PATCH to existing batch!
76
+ // 5. Return success - NO PATCH, NO COUNT QUERY!
77
+ // We return the count of items added in THIS call only.
78
+ // Total count can be obtained via getBatchStatus query if needed.
75
79
  return {
76
80
  batchId: baseBatchId,
77
- itemCount: totalCount,
78
- flushed: false, // We don't know yet - maybeFlush will handle it
81
+ itemCount: items.length,
82
+ flushed: false, // Flush happens via interval timer or large batch detection
79
83
  status: "accumulating",
80
84
  };
81
85
  },
@@ -333,13 +337,25 @@ export const maybeFlush = internalAction({
333
337
  force: v.optional(v.boolean()),
334
338
  },
335
339
  handler: async (ctx, { batchDocId, force }) => {
340
+ console.log("[maybeFlush] START", { batchDocId, force });
336
341
  // Call the mutation directly - Convex handles OCC retries automatically.
337
342
  // If another maybeFlush already transitioned this batch, the mutation
338
343
  // returns { flushed: false, reason: "not_accumulating" } which is fine.
339
- await ctx.runMutation(internal.lib.doFlushTransition, {
344
+ const result = await ctx.runMutation(internal.lib.doFlushTransition, {
340
345
  batchDocId,
341
346
  force: force ?? false,
342
347
  });
348
+ console.log("[maybeFlush] doFlushTransition result", result);
349
+ // If the transition succeeded, execute the flush directly
350
+ // (Scheduling from mutation was unreliable in component context)
351
+ if (result.flushed) {
352
+ console.log("[maybeFlush] Calling executeFlush directly");
353
+ await ctx.runAction(internal.lib.executeFlush, {
354
+ batchDocId,
355
+ processBatchHandle: result.processBatchHandle,
356
+ });
357
+ console.log("[maybeFlush] executeFlush completed");
358
+ }
343
359
  },
344
360
  });
345
361
  /**
@@ -350,7 +366,11 @@ export const maybeFlush = internalAction({
350
366
  *
351
367
  * - Returns early if batch is already flushing/completed (another caller won the race)
352
368
  * - Returns early if batch is empty or below threshold (unless force=true)
353
- * - On success, atomically updates status and schedules executeFlush
369
+ * - On success, atomically updates status and returns processBatchHandle for caller to execute
370
+ *
371
+ * Note: This mutation returns the processBatchHandle instead of scheduling executeFlush.
372
+ * The calling action (maybeFlush) is responsible for calling executeFlush directly.
373
+ * This design avoids issues with scheduling actions from within component mutations.
354
374
  *
355
375
  * OCC (Optimistic Concurrency Control) note:
356
376
  * If two doFlushTransition calls race, Convex detects the conflict when both try to
@@ -363,10 +383,17 @@ export const doFlushTransition = internalMutation({
363
383
  force: v.optional(v.boolean()),
364
384
  },
365
385
  handler: async (ctx, { batchDocId, force }) => {
386
+ console.log("[doFlushTransition] START", { batchDocId, force });
366
387
  const batch = await ctx.db.get(batchDocId);
388
+ console.log("[doFlushTransition] Batch state", {
389
+ exists: !!batch,
390
+ status: batch?.status,
391
+ scheduledFlushId: batch?.scheduledFlushId
392
+ });
367
393
  // Already flushing or completed? Nothing to do. This handles the race condition
368
394
  // where multiple maybeFlush calls are scheduled - the first one wins.
369
395
  if (!batch || batch.status !== "accumulating") {
396
+ console.log("[doFlushTransition] EARLY RETURN - not_accumulating");
370
397
  return { flushed: false, reason: "not_accumulating" };
371
398
  }
372
399
  // Check actual count from batchItems
@@ -375,16 +402,20 @@ export const doFlushTransition = internalMutation({
375
402
  .withIndex("by_batchDocId", (q) => q.eq("batchDocId", batchDocId))
376
403
  .collect();
377
404
  const totalCount = batchItemDocs.reduce((sum, doc) => sum + doc.itemCount, 0);
405
+ console.log("[doFlushTransition] Item count", { totalCount, batchItemDocs: batchItemDocs.length });
378
406
  // Empty batch? Nothing to flush.
379
407
  if (totalCount === 0) {
408
+ console.log("[doFlushTransition] EARLY RETURN - empty");
380
409
  return { flushed: false, reason: "empty" };
381
410
  }
382
411
  // Not at threshold? Skip only if not forced (interval flush uses force=true).
383
412
  if (!force && totalCount < batch.config.maxBatchSize) {
413
+ console.log("[doFlushTransition] EARLY RETURN - below_threshold");
384
414
  return { flushed: false, reason: "below_threshold" };
385
415
  }
386
416
  // Cancel scheduled timer if exists
387
417
  if (batch.scheduledFlushId) {
418
+ console.log("[doFlushTransition] Cancelling scheduled timer", batch.scheduledFlushId);
388
419
  await ctx.scheduler.cancel(batch.scheduledFlushId);
389
420
  }
390
421
  // Transition to flushing
@@ -395,12 +426,15 @@ export const doFlushTransition = internalMutation({
395
426
  lastUpdatedAt: now,
396
427
  scheduledFlushId: undefined,
397
428
  });
398
- // Schedule the actual flush
399
- await ctx.scheduler.runAfter(0, internal.lib.executeFlush, {
400
- batchDocId,
401
- processBatchHandle: batch.config.processBatchHandle,
402
- });
403
- return { flushed: true, itemCount: totalCount };
429
+ console.log("[doFlushTransition] Patched batch to flushing");
430
+ // Return the processBatchHandle so maybeFlush can call executeFlush directly
431
+ // (Scheduling from mutation was unreliable in component context)
432
+ console.log("[doFlushTransition] Returning processBatchHandle for direct execution");
433
+ return {
434
+ flushed: true,
435
+ itemCount: totalCount,
436
+ processBatchHandle: batch.config.processBatchHandle
437
+ };
404
438
  },
405
439
  });
406
440
  export const executeFlush = internalAction({
@@ -409,13 +443,16 @@ export const executeFlush = internalAction({
409
443
  processBatchHandle: v.string(),
410
444
  },
411
445
  handler: async (ctx, { batchDocId, processBatchHandle }) => {
446
+ console.log("[executeFlush] ENTERED", { batchDocId, processBatchHandle });
412
447
  const startTime = Date.now();
413
448
  let success = true;
414
449
  let errorMessage;
415
450
  // Collect items from batchItems table
451
+ console.log("[executeFlush] Collecting batch items...");
416
452
  const { items, flushStartedAt } = await ctx.runQuery(internal.lib.collectBatchItems, {
417
453
  batchDocId,
418
454
  });
455
+ console.log("[executeFlush] Collected items", { count: items.length });
419
456
  if (items.length === 0) {
420
457
  await ctx.runMutation(internal.lib.recordFlushResult, {
421
458
  batchDocId,
@@ -496,7 +533,7 @@ export const recordFlushResult = internalMutation({
496
533
  }
497
534
  else if (batch.config.flushIntervalMs > 0) {
498
535
  // Re-schedule interval timer
499
- const scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.scheduledIntervalFlush, { batchDocId });
536
+ const scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.maybeFlush, { batchDocId, force: true });
500
537
  await ctx.db.patch(batchDocId, { scheduledFlushId });
501
538
  }
502
539
  }
@@ -532,7 +569,7 @@ export const recordFlushResult = internalMutation({
532
569
  // Failure case - revert to accumulating
533
570
  let scheduledFlushId = undefined;
534
571
  if (batch.config.flushIntervalMs > 0 && batch.config.processBatchHandle) {
535
- scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.scheduledIntervalFlush, { batchDocId });
572
+ scheduledFlushId = await ctx.scheduler.runAfter(batch.config.flushIntervalMs, internal.lib.maybeFlush, { batchDocId, force: true });
536
573
  }
537
574
  await ctx.db.patch(batchDocId, {
538
575
  status: "accumulating",
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../../src/component/lib.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "convex-batch-processor",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Batch processing component for Convex - batch accumulator and table iterator",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,6 +10,13 @@ import type { Doc } from "./_generated/dataModel";
10
10
  import { v } from "convex/values";
11
11
  import { FunctionHandle } from "convex/server";
12
12
 
13
+ // Declare console for TypeScript (available at runtime in Convex)
14
+ declare const console: {
15
+ log: (...args: unknown[]) => void;
16
+ error: (...args: unknown[]) => void;
17
+ warn: (...args: unknown[]) => void;
18
+ };
19
+
13
20
  // ============================================================================
14
21
  // Batch Accumulator - Public API
15
22
  // ============================================================================
@@ -67,8 +74,8 @@ export const addItems = mutation({
67
74
  if (config.flushIntervalMs > 0) {
68
75
  const scheduledFlushId = await ctx.scheduler.runAfter(
69
76
  config.flushIntervalMs,
70
- internal.lib.scheduledIntervalFlush,
71
- { batchDocId: batch._id }
77
+ internal.lib.maybeFlush,
78
+ { batchDocId: batch._id, force: true }
72
79
  );
73
80
  await ctx.db.patch(batch._id, { scheduledFlushId });
74
81
  }
@@ -82,26 +89,29 @@ export const addItems = mutation({
82
89
  createdAt: now,
83
90
  });
84
91
 
85
- // 4. Query total count (READ only)
86
- const batchItemDocs = await ctx.db
87
- .query("batchItems")
88
- .withIndex("by_batchDocId", (q) => q.eq("batchDocId", batch._id))
89
- .collect();
90
- const totalCount = batchItemDocs.reduce((sum, doc) => sum + doc.itemCount, 0);
91
-
92
- // 5. If threshold reached, schedule background flush check (NON-BLOCKING)
93
- // DO NOT patch batch here - let maybeFlush handle it
94
- if (totalCount >= config.maxBatchSize) {
92
+ // 4. Schedule flush check ONLY if this single call could complete a batch
93
+ // DO NOT query batchItems to count - that causes OCC conflicts when
94
+ // multiple concurrent addItems all read the same index.
95
+ //
96
+ // Dual-trigger pattern:
97
+ // - SIZE trigger: items.length >= maxBatchSize (handled here)
98
+ // - TIME trigger: flushIntervalMs timer (scheduled at batch creation)
99
+ //
100
+ // For high-throughput small items, the interval timer handles flushing.
101
+ // For large single calls, we trigger immediate flush check.
102
+ if (items.length >= config.maxBatchSize) {
95
103
  await ctx.scheduler.runAfter(0, internal.lib.maybeFlush, {
96
104
  batchDocId: batch._id,
97
105
  });
98
106
  }
99
107
 
100
- // 6. Return success - NO PATCH to existing batch!
108
+ // 5. Return success - NO PATCH, NO COUNT QUERY!
109
+ // We return the count of items added in THIS call only.
110
+ // Total count can be obtained via getBatchStatus query if needed.
101
111
  return {
102
112
  batchId: baseBatchId,
103
- itemCount: totalCount,
104
- flushed: false, // We don't know yet - maybeFlush will handle it
113
+ itemCount: items.length,
114
+ flushed: false, // Flush happens via interval timer or large batch detection
105
115
  status: "accumulating",
106
116
  };
107
117
  },
@@ -368,7 +378,7 @@ export const collectBatchItems = internalQuery({
368
378
 
369
379
  // Type for flush transition result
370
380
  type FlushTransitionResult =
371
- | { flushed: true; itemCount: number }
381
+ | { flushed: true; itemCount: number; processBatchHandle: string }
372
382
  | { flushed: false; reason: string };
373
383
 
374
384
  /**
@@ -415,13 +425,28 @@ export const maybeFlush = internalAction({
415
425
  force: v.optional(v.boolean()),
416
426
  },
417
427
  handler: async (ctx, { batchDocId, force }): Promise<void> => {
428
+ console.log("[maybeFlush] START", { batchDocId, force });
429
+
418
430
  // Call the mutation directly - Convex handles OCC retries automatically.
419
431
  // If another maybeFlush already transitioned this batch, the mutation
420
432
  // returns { flushed: false, reason: "not_accumulating" } which is fine.
421
- await ctx.runMutation(internal.lib.doFlushTransition, {
433
+ const result = await ctx.runMutation(internal.lib.doFlushTransition, {
422
434
  batchDocId,
423
435
  force: force ?? false,
424
436
  });
437
+
438
+ console.log("[maybeFlush] doFlushTransition result", result);
439
+
440
+ // If the transition succeeded, execute the flush directly
441
+ // (Scheduling from mutation was unreliable in component context)
442
+ if (result.flushed) {
443
+ console.log("[maybeFlush] Calling executeFlush directly");
444
+ await ctx.runAction(internal.lib.executeFlush, {
445
+ batchDocId,
446
+ processBatchHandle: result.processBatchHandle,
447
+ });
448
+ console.log("[maybeFlush] executeFlush completed");
449
+ }
425
450
  },
426
451
  });
427
452
 
@@ -433,7 +458,11 @@ export const maybeFlush = internalAction({
433
458
  *
434
459
  * - Returns early if batch is already flushing/completed (another caller won the race)
435
460
  * - Returns early if batch is empty or below threshold (unless force=true)
436
- * - On success, atomically updates status and schedules executeFlush
461
+ * - On success, atomically updates status and returns processBatchHandle for caller to execute
462
+ *
463
+ * Note: This mutation returns the processBatchHandle instead of scheduling executeFlush.
464
+ * The calling action (maybeFlush) is responsible for calling executeFlush directly.
465
+ * This design avoids issues with scheduling actions from within component mutations.
437
466
  *
438
467
  * OCC (Optimistic Concurrency Control) note:
439
468
  * If two doFlushTransition calls race, Convex detects the conflict when both try to
@@ -446,11 +475,19 @@ export const doFlushTransition = internalMutation({
446
475
  force: v.optional(v.boolean()),
447
476
  },
448
477
  handler: async (ctx, { batchDocId, force }): Promise<FlushTransitionResult> => {
478
+ console.log("[doFlushTransition] START", { batchDocId, force });
479
+
449
480
  const batch = await ctx.db.get(batchDocId);
481
+ console.log("[doFlushTransition] Batch state", {
482
+ exists: !!batch,
483
+ status: batch?.status,
484
+ scheduledFlushId: batch?.scheduledFlushId
485
+ });
450
486
 
451
487
  // Already flushing or completed? Nothing to do. This handles the race condition
452
488
  // where multiple maybeFlush calls are scheduled - the first one wins.
453
489
  if (!batch || batch.status !== "accumulating") {
490
+ console.log("[doFlushTransition] EARLY RETURN - not_accumulating");
454
491
  return { flushed: false, reason: "not_accumulating" };
455
492
  }
456
493
 
@@ -460,19 +497,23 @@ export const doFlushTransition = internalMutation({
460
497
  .withIndex("by_batchDocId", (q) => q.eq("batchDocId", batchDocId))
461
498
  .collect();
462
499
  const totalCount = batchItemDocs.reduce((sum, doc) => sum + doc.itemCount, 0);
500
+ console.log("[doFlushTransition] Item count", { totalCount, batchItemDocs: batchItemDocs.length });
463
501
 
464
502
  // Empty batch? Nothing to flush.
465
503
  if (totalCount === 0) {
504
+ console.log("[doFlushTransition] EARLY RETURN - empty");
466
505
  return { flushed: false, reason: "empty" };
467
506
  }
468
507
 
469
508
  // Not at threshold? Skip only if not forced (interval flush uses force=true).
470
509
  if (!force && totalCount < batch.config.maxBatchSize) {
510
+ console.log("[doFlushTransition] EARLY RETURN - below_threshold");
471
511
  return { flushed: false, reason: "below_threshold" };
472
512
  }
473
513
 
474
514
  // Cancel scheduled timer if exists
475
515
  if (batch.scheduledFlushId) {
516
+ console.log("[doFlushTransition] Cancelling scheduled timer", batch.scheduledFlushId);
476
517
  await ctx.scheduler.cancel(batch.scheduledFlushId);
477
518
  }
478
519
 
@@ -484,14 +525,16 @@ export const doFlushTransition = internalMutation({
484
525
  lastUpdatedAt: now,
485
526
  scheduledFlushId: undefined,
486
527
  });
528
+ console.log("[doFlushTransition] Patched batch to flushing");
487
529
 
488
- // Schedule the actual flush
489
- await ctx.scheduler.runAfter(0, internal.lib.executeFlush, {
490
- batchDocId,
491
- processBatchHandle: batch.config.processBatchHandle,
492
- });
493
-
494
- return { flushed: true, itemCount: totalCount };
530
+ // Return the processBatchHandle so maybeFlush can call executeFlush directly
531
+ // (Scheduling from mutation was unreliable in component context)
532
+ console.log("[doFlushTransition] Returning processBatchHandle for direct execution");
533
+ return {
534
+ flushed: true,
535
+ itemCount: totalCount,
536
+ processBatchHandle: batch.config.processBatchHandle
537
+ };
495
538
  },
496
539
  });
497
540
 
@@ -501,14 +544,18 @@ export const executeFlush = internalAction({
501
544
  processBatchHandle: v.string(),
502
545
  },
503
546
  handler: async (ctx, { batchDocId, processBatchHandle }) => {
547
+ console.log("[executeFlush] ENTERED", { batchDocId, processBatchHandle });
548
+
504
549
  const startTime = Date.now();
505
550
  let success = true;
506
551
  let errorMessage: string | undefined;
507
552
 
508
553
  // Collect items from batchItems table
554
+ console.log("[executeFlush] Collecting batch items...");
509
555
  const { items, flushStartedAt } = await ctx.runQuery(internal.lib.collectBatchItems, {
510
556
  batchDocId,
511
557
  });
558
+ console.log("[executeFlush] Collected items", { count: items.length });
512
559
 
513
560
  if (items.length === 0) {
514
561
  await ctx.runMutation(internal.lib.recordFlushResult, {
@@ -602,8 +649,8 @@ export const recordFlushResult = internalMutation({
602
649
  // Re-schedule interval timer
603
650
  const scheduledFlushId = await ctx.scheduler.runAfter(
604
651
  batch.config.flushIntervalMs,
605
- internal.lib.scheduledIntervalFlush,
606
- { batchDocId }
652
+ internal.lib.maybeFlush,
653
+ { batchDocId, force: true }
607
654
  );
608
655
  await ctx.db.patch(batchDocId, { scheduledFlushId });
609
656
  }
@@ -644,8 +691,8 @@ export const recordFlushResult = internalMutation({
644
691
  if (batch.config.flushIntervalMs > 0 && batch.config.processBatchHandle) {
645
692
  scheduledFlushId = await ctx.scheduler.runAfter(
646
693
  batch.config.flushIntervalMs,
647
- internal.lib.scheduledIntervalFlush,
648
- { batchDocId }
694
+ internal.lib.maybeFlush,
695
+ { batchDocId, force: true }
649
696
  );
650
697
  }
651
698