From ac09a48eaaa57e59bd680ffa8ff222d0222cb423 Mon Sep 17 00:00:00 2001 From: Ephraim Duncan <55143799+ephraimduncan@users.noreply.github.com> Date: Mon, 16 Mar 2026 00:13:36 +0000 Subject: [PATCH] perf: parallelize independent async operations in createEnvelope (#2618) --- .../server-only/envelope/create-envelope.ts | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/lib/server-only/envelope/create-envelope.ts b/packages/lib/server-only/envelope/create-envelope.ts index 3eae7e6a7..3a37c321f 100644 --- a/packages/lib/server-only/envelope/create-envelope.ts +++ b/packages/lib/server-only/envelope/create-envelope.ts @@ -265,18 +265,6 @@ export const createEnvelope = async ({ // for uploads from the frontend const timezoneToUse = meta?.timezone || settings.documentTimezone || userTimezone; - const documentMeta = await prisma.documentMeta.create({ - data: extractDerivedDocumentMeta(settings, { - ...meta, - timezone: timezoneToUse, - }), - }); - - const secondaryId = - type === EnvelopeType.DOCUMENT - ? await incrementDocumentId().then((v) => v.formattedDocumentId) - : await incrementTemplateId().then((v) => v.formattedTemplateId); - const getValidatedDelegatedOwner = async () => { if ( !settings.delegateDocumentOwnership || @@ -311,7 +299,18 @@ export const createEnvelope = async ({ return delegatedOwner; }; - const delegatedOwner = await getValidatedDelegatedOwner(); + const [documentMeta, secondaryId, delegatedOwner] = await Promise.all([ + prisma.documentMeta.create({ + data: extractDerivedDocumentMeta(settings, { + ...meta, + timezone: timezoneToUse, + }), + }), + type === EnvelopeType.DOCUMENT + ? incrementDocumentId().then((v) => v.formattedDocumentId) + : incrementTemplateId().then((v) => v.formattedTemplateId), + getValidatedDelegatedOwner(), + ]); const envelopeOwnerId = delegatedOwner?.id ?? userId; const createdEnvelope = await prisma.$transaction(async (tx) => {