Upgrade to Pro — share decks privately, control downloads, hide ads and more …

FerretDB - IT Press Tour #61 April 2025

FerretDB - IT Press Tour #61 April 2025

The IT Press Tour

April 01, 2025

More Decks by The IT Press Tour

Other Decks in Technology

Transcript

  1. Quick facts: Founders of FerretDB Alexey Palazhchenko, CTO Ex-Percona, Talos

    Peter Farkas, CEO Ex-Percona, Cloudera Peter Zaitsev Founder and former CEO of Percona
  2. Quick facts: The Mission and Vision of FerretDB Mission: FerretDB

    empowers developers with an open-source, MongoDB-compatible database layer built on PostgreSQL, merging NoSQL flexibility with PostgreSQL reliability. We are committed to eliminating vendor lock-in and fostering a collaborative community to deliver transparent, adaptable document database solutions. Vision: To lead the future of document databases by championing open standards and collaborative innovation, empowering developers to build freely across vendor-agnostic ecosystems. We envision a world where seamless, interoperable data management is driven by community-led standardization, ensuring transparency, portability, and freedom from proprietary constraints.
  3. Quick facts: Business and business model • VC-Funded ($2.8mn in

    2022 by two US-based investors) • FerretDB Inc. is based in Delaware, US • 8 team members working fully remotely (Hungary, Spain, Japan, Armenia, Canada, Poland, USA) • Fully Open Source product • Support, consulting, managed services • Custom feature development • Agreements with database as a service providers on revenue share
  4. Agenda • Why do we care? Why move MongoDB to

    Postgres? • MongoDB’s licensing • History of SQL as an Open Standard • MongoDB Query Language as an Open Standard? • Architecture of FerretDB • Demo • Conclusion
  5. One outlier on this graph Source: StackExchange Developer Survey, 2024

    (excerpt) “Which database environments have you done extensive development work in over the past year, and which do you want to work in over the next year? “ “Which database environments have you done extensive development work in over the past year, and which do you want to work in over the next year? “ 76k responses
  6. SSPL MongoDB - since 2018, released under the Server Side

    Public Licence (SSPL). If MongoDB is used as part of a Cloud Service… … source code of everything you use to provide that service needs to be licensed under SSPL. Or you pay a licence fee. MongoDB’s approval (and license) is needed. This kills innovation and creates vendor lock-in. More info: www.ssplisbad.com Also: Peter Zaitsev and Matt Yonkovit’s articles on Percona Blog
  7. Impact of SSPL on competition and availability Let’s look at

    the NoSQL databases available on the Civo Marketplace: Outdated 2018 version, before SSPL
  8. We’ve talked to users - here’s what they said “The

    SSPL license is vague - we are looking to replace MongoDB due to the legal risks and uncertainty.” - a FAANG company “We are looking to find a MongoDB Atlas alternative, without vendor lock-in.” - Major travel search portal “Pricing of MongoDB Atlas is not suitable for our use case.” - Small SaaS business “We are unable to offer our customers an open-source, MongoDB-compatible database.” - Cloud Infrastructure provider
  9. Why not just use Postgres and JSON? MongoDB has a

    large ecosystem. Many JS frameworks, stacks (MERN, MEAN, MEVN…) and other tools include or depend on MongoDB compatibility to work.
  10. The short history of SQL ACM paper: A relational model

    of data for large shared data banks, Jun/1970 Author: Edgar F "Ted" Codd, IBM Research Labs Muthukkaruppan, K. (2023) “ Evolution of transactional databases,” Postgres Conf. SV. Postgres Conf. SV, San Jose: Hilton, 20 April 2023.
  11. The short history of SQL At IBM, in the early

    70s, Don Chamberlin and Ray Boyce laid down the foundations of the SQL query language for relational databases, which even non-developers could use. Advanced SQL — Chapter 01 (2020) Torsten Grust. YouTube. Available at: https://www.youtube.com/watch?v=HAI5DG_l60k (Accessed: April 22, 2023).
  12. The short history of SQL - late 70s • IBM

    releases multiple relational database products speaking SQL • Vendor lock-in, no other commercially available SQL database • Like SQL? Use IBM.
  13. The evolution of SQL as an Open Standard - 80s

    SQL is great, let’s implement it in dozens of different ways! SQL SQL? SQL? SQL? SQL? Many different dialects, no conformity between products.
  14. The evolution of SQL as an Open Standard - 86-87

    • SQL Becomes an ANSI and later ISO Open Standard called SQL86. • Anyone can implement them • Features can be added on top (standard extension) All vendors were proprietary, this still meant vendor lock-in.
  15. SQL, an Open Standard. Here comes Open Source! Mid 90s,

    early 2000s: Open Source projects started adopting SQL, partial implementations of the standard. SQL is available to be used by anyone. Since then: hundreds of derivatives
  16. A familiar situation MQL is great, let’s implement it in

    dozens of different ways! MQL MQL? MQL? MQL? All proprietary. Products look similar, but incompatible with each other. Once you choose one, you may be stuck with that. MQL?
  17. Is this just the thing of the past? No. Look

    at Document Databases! • MongoDB, a then open source database, develops MQL - the MongoDB Query Language. • “Don’t need to be a DBA to run a database” • Achieves market dominance in certain segments • Goes proprietary in 2018 • Attempts to redefine the meaning of open source - SSPL license
  18. The issue with most MongoDB Alternatives All great products! Similar

    query language, but • vastly different feature set • different degree of compatibility • no chance of migration between them • all proprietary • Most tied to cloud vendors For a “MongoDB alternative” - MongoDB sets the pace.
  19. MQL, an Open Standard? - A standardized, core feature set

    based on MongoDB - A JSON query language - Can be extended at the expense of portability Overwhelming interest from vendors and developers in the industry. It will: - Ensure portability between products - Can be extended, just like SQL - Stimulates innovation, increase competition - Be very good for users
  20. FerretDB • A MongoDB compatibility layer • Written in Go

    • Uses PostgreSQL as backend • Usable on-prem or in the cloud • Released under Apache 2.0
  21. MongoDB compatibility means that existing elements of the MongoDB Ecosystem

    (tools, frameworks and applications) are possible to use with FerretDB
  22. FerretDB vs. MongoDB architecture and licensing MongoDB Drivers • Main

    reason behind high adoption of MongoDB • Provides unmatched Developer Experience • Free to use under Apache 2.0 MongoDB Backend • Licensed under SSPL • Proprietary vendors (Amazon, IBM, Oracle, etc.) replaced it in their own implementations of a compatible product MongoDB Drivers MongoDB API WiredTiger Apache 2.0 SSPL FerretDB replaces the MongoDB Backend with PostgreSQL MongoDB Drivers FerretDB PostgreSQL, DocumentDB ext. Apache 2.0 PostgreSQL (OSI)
  23. FerretDB - Current traction • 4000+ running instances (with telemetry

    ON, could be more in reality) • 10k stars on GitHub, 200+ contributors • Enterprise users Support, consulting and managed services offered by FerretDB Inc.
  24. FerretDB + Microsoft • Started cooperation in 2023 • Released

    FerretDB 2.0 + Microsoft DocumentDB (Postgres extension) • Together, an OSS Mongo alternative users can run anywhere • Same engine as Azure CosmosDB for MongoDB • Ties into push towards Open Standard
  25. OpenDocDB initiative • Community-led push for standardization • Compatibility Test

    Suite - test to achieve a common feature set • Certify compatibility first, write standard later • Supported by many companies in the Postgres community www.opendocdb.org
  26. Conclusion • There is a need for an Open Standard

    for Document Databases • MongoDB will become a commodity, like SQL Best outcome for developers and the industry. • FerretDB leads the way opening up the Document Database market • We build FerretDB with the community