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

Support MongoDB 4.0 Multi-document transactions #94

Open
pierreis opened this issue Nov 3, 2018 · 3 comments
Open

Support MongoDB 4.0 Multi-document transactions #94

pierreis opened this issue Nov 3, 2018 · 3 comments

Comments

@pierreis
Copy link

pierreis commented Nov 3, 2018

No description provided.

@why-not-try-calmer
Copy link
Contributor

why-not-try-calmer commented Jun 7, 2022

I would like to see multiple-document transactions implemented too. To the best of my knowledge the last MongoDB version that didn't support transactions was 3.6, EOL'ed in 2021 (the upcoming next stable, official version is 6.0 -- https://www.mongodb.com/docs/upcoming/release-notes/6.0/#std-label-release-notes-6.0). It's hard for this library to compete with librairies for other databases without transactions. This means that in the long run people are going to not use mongodb in Haskell at all.

That said, I would be willing to help. As far as I understand this library sends opcodes + document data as "notices" (bytestrings) formatted and transported as per MongoDB Wire Protocol; and Wire Protocol defines transactions using the OP_MSG opcode. This suggests that implementing transactions entails enabling this library to produce and consume "notices" written using this new opcode?

@VictorDenisov
Copy link
Member

Yep. It means implementing operations using OP_MSG code according to https://www.mongodb.com/docs/manual/reference/mongodb-wire-protocol/

@why-not-try-calmer
Copy link
Contributor

Yep. It means implementing operations using OP_MSG code according to https://www.mongodb.com/docs/manual/reference/mongodb-wire-protocol/

Okay. I don't want to promise anything but I'll look into it. If a maintainer of this library is already working on this please let me know.

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

No branches or pull requests

3 participants