Convex Triggers + Aggregates Pattern Question
We're using Convex triggers with TableAggregate to maintain aggregated data. We're encountering a pattern issue with mixing direct DB operations and trigger-wrapped mutations.
Setup:
Current Problem:
2 Replies
Thanks for posting in <#1088161997662724167>.
Reminder: If you have a Convex Pro account, use the Convex Dashboard to file support tickets.
- Provide context: What are you trying to achieve, what is the end-user interaction, what are you seeing? (full error message, command output, etc.)
- Use search.convex.dev to search Docs, Stack, and Discord all at once.
- Additionally, you can post your questions in the Convex Community's <#1228095053885476985> channel to receive a response from AI.
- Avoid tagging staff unless specifically instructed.
Thank you!
The Issue:
Within updateBatch:
- ctx.db.delete() triggers the aggregate ✅
- Helper function ItemsHelper.upsertItem() does NOT trigger ❌
- Can't use ctx.runMutation(internal.items.upsertItem) because we're already doing direct DB operations
Proposed Solution:
Is this the recommended pattern? Regular mutations orchestrating wrapped mutations via ctx.runMutation to ensure consistent trigger behavior?
side note: "await ctx.runMutation" is more expensive so actually status seems better?