Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transaction pattern #4

Open
rohanaceres opened this issue May 11, 2018 · 9 comments
Open

Transaction pattern #4

rohanaceres opened this issue May 11, 2018 · 9 comments
Assignees

Comments

@rohanaceres
Copy link

Hi,

You intend to implement a transaction-like pattern such as two-phase commit?

@alexandre-spieser
Copy link
Owner

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, exposing a list of pending transactions.

I will have a look :)

@rohanaceres
Copy link
Author

Hi Alexandre,

Thanks for the answer!! But I was thinking about adding support to Mongo 4.0, which has transactions natively. :)

@alexandre-spieser
Copy link
Owner

alexandre-spieser commented Sep 3, 2018

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).

@darbio
Copy link

darbio commented May 6, 2019

Hi @alexandre-spieser. Was this ever implemented?

@alexandre-spieser
Copy link
Owner

No this is still in the pipeline, I prioritized other issues.

@iArtur
Copy link

iArtur commented Aug 7, 2019

Hi @alexandre-spieser
Is there a way to implement the transactions outside your generic implementation?

Thanks!

@alexandre-spieser
Copy link
Owner

alexandre-spieser commented Aug 7, 2019

Absolutely, you can override a lot of thing.
For the transaction bit, have a look at:
#21

eshkard supplied a zip file with some work around transactions.
You can base your work on that.

Hope this helps :)

@iArtur
Copy link

iArtur commented Aug 8, 2019

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!

@alexandre-spieser
Copy link
Owner

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! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants