diff --git a/src/sessions.ts b/src/sessions.ts index 544ab53936..ed53b38da8 100644 --- a/src/sessions.ts +++ b/src/sessions.ts @@ -362,6 +362,11 @@ export class ClientSession extends TypedEventEmitter { /** * Starts a new transaction with the given options. * + * @remarks + * **IMPORTANT**: Running operations in parallel is not supported during a transaction. The use of `Promise.all`, + * `Promise.allSettled`, `Promise.race`, etc to parallelize operations inside a transaction is + * undefined behaviour. + * * @param options - Options for the transaction */ startTransaction(options?: TransactionOptions): void { @@ -439,6 +444,10 @@ export class ClientSession extends TypedEventEmitter { * **IMPORTANT:** This method requires the user to return a Promise, and `await` all operations. * Any callbacks that do not return a Promise will result in undefined behavior. * + * **IMPORTANT**: Running operations in parallel is not supported during a transaction. The use of `Promise.all`, + * `Promise.allSettled`, `Promise.race`, etc to parallelize operations inside a transaction is + * undefined behaviour. + * * @remarks * This function: * - Will return the command response from the final commitTransaction if every operation is successful (can be used as a truthy object)