So, I was able to find a temporary work around here:
Relevant quote below
open the database as a managed DB…specify the version timestamp for each key and then my values will be added correctly
HOWEVER
My transactions are coming in so fast that time.Now().UnixNano() returns the same value for multiple entries. Because time.Now().UnixNano() is not designed to return the current nanosecond. On my hardware, it can take 10ms before it updates. This causes the undesired behavior of dropping versions.
To work around that I keep an incremental counter that I add to the result of time.Now().UnixNano() to guarantee uniqueness.
All of this seems a bit hacky. I would like to see an option that causes this behavior. Additionally, I am unsure if this hacky approach could have potentially unwanted side effects.
To me, it seems like if there is a ‘keep multiple versions’ option, there should be a related option to ‘keep multiple versions within a single transaction’. It seems reasonable to me that if someone wants to keep multiple versions that they would want to do so even within the same transaction.