mongodb-generic-repository
mongodb-generic-repository copied to clipboard
Transaction pattern
Hi,
You intend to implement a transaction-like pattern such as two-phase commit?
Hi Rohana,
Thank you for your suggestion.
We could indeed implement a generic wrapper allowing you to define a 2 two phase commit transaction pattern.
The user would have to specify a rollback Action that would reset the state of both documents if something goes wrong.
Doing this in a generic fashion would also mean that a new type of base document should be added, in order to store pending transactions within the document in a generic way. It could be something like a document implementing an interface like ITransactionalDocument<TKey>, exposing a list of pending transactions.
I will have a look :)
Hi Alexandre,
Thanks for the answer!! But I was thinking about adding support to Mongo 4.0, which has transactions natively. :)
Sorry for the late reply I was away on holiday :) Yes you are right, I will release it soon (in a week or so, I have already updated the driver to the latest version).
Hi @alexandre-spieser. Was this ever implemented?
No this is still in the pipeline, I prioritized other issues.
Hi @alexandre-spieser Is there a way to implement the transactions outside your generic implementation?
Thanks!
Absolutely, you can override a lot of thing. For the transaction bit, have a look at: https://github.com/alexandre-spieser/mongodb-generic-repository/issues/21
eshkard supplied a zip file with some work around transactions. You can base your work on that.
Hope this helps :)
Thanks @alexandre-spieser it really helped! Do you have any plans to implement the transactions on your repository? If you coul'd put the mongodb transactions and the two-phase commit it will be a killer repo!
Thanks for the work!
Yeah I'll eventually get to it, it's just that integration testing it takes a LOT of time, and I've been working on other things lately. Feel free to contribute though, it's open source for a reason :) Thanks for the feedback! :)