Here are three other mechanisms to avoid race conditions in flows.
1. Add a wait element
Place a wait element after an update, create or delete element. The wait time can be as short as 1 minute, but this ends the current transaction and commits (saves) the operations to the database. So any other flow accessing the same records will see the updated version.
2. Call an invocable action
Whenever an invocable action is called from a flow, you have advanced options to control the transaction behavior. The default option is “Let the flow decide”, which means the decision is mostly arbitrary. Another option is “Always start a new transaction” which forces a commit for the current transaction.
Note that the action doesn’t need to actually do anything special, as it’s the transaction control that really matters.
3. In a screen flow, add a screen element
By inserting a screen element, the flow also commits the current transaction and starts a new one.
The takeaway
It’s important to remember how flows work. When you update, create or delete records, the records are actually committed to the database only once the current transaction ends or the flow completes. Until then, everything is saved in a cache.