From 24dcdb516f77aba4719189cc1bc22a9d7164127d Mon Sep 17 00:00:00 2001 From: Dan Sutton Date: Thu, 14 May 2026 14:21:24 +0100 Subject: [PATCH] feat(webapp): mollifyTrigger writes snapshot to buffer + returns synthesised result --- .../v3/mollifier/mollifierMollify.server.ts | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 apps/webapp/app/v3/mollifier/mollifierMollify.server.ts diff --git a/apps/webapp/app/v3/mollifier/mollifierMollify.server.ts b/apps/webapp/app/v3/mollifier/mollifierMollify.server.ts new file mode 100644 index 000000000..6e9356755 --- /dev/null +++ b/apps/webapp/app/v3/mollifier/mollifierMollify.server.ts @@ -0,0 +1,46 @@ +import type { MollifierBuffer } from "@trigger.dev/redis-worker"; +import { serialiseMollifierSnapshot, type MollifierSnapshot } from "./mollifierSnapshot.server"; +import type { TripDecision } from "./mollifierGate.server"; + +export type MollifyNotice = { + code: "mollifier.queued"; + message: string; + docs: string; +}; + +export type MollifySyntheticResult = { + run: { friendlyId: string }; + error: undefined; + isCached: false; + notice: MollifyNotice; +}; + +const NOTICE: MollifyNotice = { + code: "mollifier.queued", + message: + "Trigger accepted into burst buffer. Consider batchTrigger for fan-outs of 100+.", + docs: "https://trigger.dev/docs/triggering#burst-handling", +}; + +export async function mollifyTrigger(args: { + runFriendlyId: string; + environmentId: string; + organizationId: string; + engineTriggerInput: MollifierSnapshot; + decision: Extract; + buffer: MollifierBuffer; +}): Promise { + await args.buffer.accept({ + runId: args.runFriendlyId, + envId: args.environmentId, + orgId: args.organizationId, + payload: serialiseMollifierSnapshot(args.engineTriggerInput), + }); + + return { + run: { friendlyId: args.runFriendlyId }, + error: undefined, + isCached: false, + notice: NOTICE, + }; +}