From e8e0b3c8f9620dc42c4888f9dccbf4fd3e69d384 Mon Sep 17 00:00:00 2001 From: dave Date: Wed, 8 Jan 2025 19:53:25 +0000 Subject: [PATCH] Swapped order of handling event stream and event storage --- .../src/eventStore/schema/appendToStream.ts | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/packages/emmett-sqlite/src/eventStore/schema/appendToStream.ts b/src/packages/emmett-sqlite/src/eventStore/schema/appendToStream.ts index c487fc5d..e8028cbb 100644 --- a/src/packages/emmett-sqlite/src/eventStore/schema/appendToStream.ts +++ b/src/packages/emmett-sqlite/src/eventStore/schema/appendToStream.ts @@ -115,24 +115,6 @@ const appendEventsRaw = async ( ); } - const { sqlString, values } = buildEventInsertQuery( - events, - expectedStreamVersion, - streamId, - streamType, - options?.partition?.toString() ?? defaultTag, - ); - - const returningId = await db.querySingle<{ - global_position: string; - } | null>(sqlString, values); - - if (returningId?.global_position == null) { - throw new Error('Could not find global position'); - } - - globalPosition = BigInt(returningId.global_position); - let position: { stream_position: string } | null; if (expectedStreamVersion === 0n) { @@ -192,6 +174,24 @@ const appendEventsRaw = async ( }; } } + + const { sqlString, values } = buildEventInsertQuery( + events, + expectedStreamVersion, + streamId, + streamType, + options?.partition?.toString() ?? defaultTag, + ); + + const returningId = await db.querySingle<{ + global_position: string; + } | null>(sqlString, values); + + if (returningId?.global_position == null) { + throw new Error('Could not find global position'); + } + + globalPosition = BigInt(returningId.global_position); } catch (err: unknown) { if (isSQLiteError(err) && isOptimisticConcurrencyError(err)) { return {