DEV Community

Discussion on: What's the Status of MongoDB and Prisma 2?

Collapse
 
nikolasburk profile image
Nikolas Burk • Edited

Hey Anthony 👋 thank you so much for this great writeup and for summarizing the comments from the issue 🙏 We are very aware that people are eagerly waiting for MongoDB support in Prisma 2! I want to shed some light on the current situation and how we are currently thinking about a MongoDB connector by responding to your questions.

Does Prisma need anything else from MongoDB to implement a connector or is the MongoDB Rust driver good to go?

As far as I'm aware, we don't need anything else from MongoDB on a technical level.

Is anyone at Prisma currently working on a MongoDB connector or accountable for tracking its progress?

We are not actively working on a MongoDB connector at the moment. This is also reflected on our roadmap.

Note that there are a few technical prerequisites for the MongoDB connector, such as the ability to use native database types in the Prisma schema (the good news is that this is under active development and likely to be released within the next 2-3 months). Another feature that we need to get done before we can get serious about a MongoDB connector is Prisma Migrate. Migrations for SQL and NoSQL databases mean very different things. We need to be confident about our solution for SQL databases before we can "afford" expanding to NoSQL ones.

If not what can contributors do to help Prisma out?

Unfortunately I believe there's not much that contributors can do at this point, unless they have a lot of free time and come equipped with some very solid knowledge about Rust, JS/TS and databases altogether.

While Prisma is open source, the software we're building is extremely complex. The onboarding processs for new developers who need to get into our codebase typically taskes several days/weeks until there's a level of familiarity where they can independently contribute. In that sense, it seems practically impossible that somebody who's not part of our engineering orgnization would be able to grasp the complexity of the codebase and would be able to contribute. We are aware that this is not ideal though and one of our internal engineering initiatives for the next months is to start better documenting the internals of Prisma – hopefully this will make it easier for external folks to contribute in the future!

However, I actually think that the complexity of the codebase is not the main problem in this case. The bigger one is that there a lot of unknowns and unresolved "product questions". The Prisma schema as well as the Prisma Client API are currently optimized for relational databases. MongoDB brings a new database paradigm and we'll need to figure out how this can play nicely together with our existing tools.

So, what can you do to help?

Talk to our product team! Share your thoughts about the MongoDB connector with the product team directly or keep commenting in the GitHub issue. Your input will be the foundation for what we're building, so if you're eagerly waiting for the MongoDB connector, th best thing you can do right now is help us figure out what it actually should look like and how it should work.

As I said, we are very aware that people want MongoDB support (so do we 😄), but there are a few roadblocks we need to get out of the way before we can start serious development on it.

Collapse
 
ajcwebdev profile image
ajcwebdev • Edited

Thanks so much Nikolas for this response. I think that a lot of the frustrations people have around these issues come from feeling that they are in the dark and so these types of run downs can generate a lot of good will and ease some of the tension.

I certainly appreciate the unique challenges that come from trying to occupy the open source and the corporate development worlds simultaneously. As someone who is firmly in the open source world at the moment I can say that Prisma is almost indispensable to multiple large scale open source projects that I see going on right now.

Developers love Prisma and they want to help make it better. The more processes Prisma can put in place to allow developers to make meaningful contributions will lead to more developers wanting to make meaningful contributions.

Unfortunately I believe there's not much that contributors can do at this point, unless they have a lot of free time and come equipped with some very solid knowledge about Rust, JS/TS and databases altogether.

I had the exact same thought, it is a very specific combination of skill sets and unfortunately I lack the Rust chops at this time (ask me again in a year and we'll see). But I do know JS and a decent amount about databases so hopefully some Rustaceans in the community can help me bridge the gap.

I will definitely be looking into the resources you provided. I think having this stuff on Notion but not on GitHub might be causing some of the feeling of a communication gap (says the guy on dev.to). Notion is amazing though don't get me wrong.

I'd love to know if/when the MongoDB connector is at a stage where it's possible to build out basic prototypes and proofs of concept. I think that's the sweet spot of what I can help contribute. One of the things I really enjoyed about the project I built with Redwood and Fauna was that it was something that hadn't been done before, not because it took any crazy CS breakthroughs but because it just took a lot of tinkering and getting familiar with the idiosyncrasies of each of them.

The only way to get these large, oddly-shaped software projects to fit together is by having lots of people throwing lots of code around to see what happens and what corners they run into. And I do have a lot of free time.