FerretDB: la alternativa 100 % open source a MongoDB impulsada por PostgreSQL

FerretDB permite ejecutar aplicaciones MongoDB sin depender del software privativo, utilizando PostgreSQL como motor de base de datos. Una solución prometedora para desarrolladores y empresas que apuestan por la libertad y la sostenibilidad tecnológica.

MongoDB fue durante años sinónimo de agilidad en el desarrollo backend. Su modelo orientado a documentos, la facilidad de uso y sus eficientes drivers lo convirtieron en la base de innumerables aplicaciones modernas. Sin embargo, desde su cambio de licencia a SSPL (Server Side Public License), muchas organizaciones open source y empresas con políticas estrictas de cumplimiento legal han buscado alternativas que ofrezcan compatibilidad sin renunciar a la libertad de uso. Ahí es donde entra FerretDB.

¿Qué es FerretDB?

FerretDB es una base de datos open source que actúa como una capa de traducción entre el protocolo MongoDB y PostgreSQL. En lugar de implementar un nuevo motor desde cero, FerretDB traduce las peticiones BSON del cliente (como las de mongosh o Mongoose) al lenguaje SQL compatible con PostgreSQL, utilizando extensiones como DocumentDB para almacenar documentos JSONB y otros tipos complejos de forma eficiente.

Esto permite que cualquier aplicación que funcione con MongoDB 5.0 o superior pueda migrarse (en muchos casos sin cambios de código) a FerretDB, obteniendo los beneficios de PostgreSQL sin perder la comodidad del modelo orientado a documentos.

Arquitectura: cómo funciona FerretDB

flowchart LR
  A["Aplicación o driver<br>MongoDB estándar"]
  F{{FerretDB<br>(proxy)}}
  P[(PostgreSQL<br>con extensión DocumentDB)]

  A -- "Protocolo MongoDB<br>(BSON)" --> F
  F -- "SQL<br>(Protocolo PostgreSQL)" --> P

FerretDB se comporta como un servidor MongoDB desde el punto de vista del cliente, pero en realidad se apoya en un backend relacional. Esto permite usar herramientas como MongoDB Compass, Robo 3T o incluso mongosh sin modificaciones.

¿Por qué elegir FerretDB?

Las razones principales por las que FerretDB se está posicionando como una solución estratégica en entornos exigentes son:

1. 100 % software libre y de código abierto

FerretDB está licenciado bajo la licencia Apache 2.0, lo que lo hace apto para todo tipo de usos, desde investigación hasta producción comercial, sin restricciones derivadas de licencias ambiguas como la SSPL.

2. Compatibilidad con el ecosistema MongoDB

La mayoría de comandos comunes (insert, find, update, aggregate, etc.) son compatibles. También funciona con drivers oficiales y herramientas GUI ya existentes.

3. Fiabilidad y madurez de PostgreSQL

Al usar PostgreSQL como motor, se heredan décadas de estabilidad, replicación, respaldo, integridad transaccional y herramientas como pg_dump o pg_stat_statements.

4. Ideal para entornos que exigen auditoría y conformidad legal

FerretDB evita problemas de licenciamiento, lo cual es clave para sectores regulados o proyectos gubernamentales que requieren 100 % transparencia y control del stack tecnológico.

Comparativa: FerretDB vs MongoDB

CaracterísticaMongoDBFerretDB + PostgreSQL
LicenciaSSPL (no OSI)Apache 2.0 (OSI approved)
Motor de almacenamientoPropietarioPostgreSQL + DocumentDB
Soporte para SQLNoTotal (mediante PostgreSQL)
Migración sencillaN/ACompatible con drivers
Requisitos de recursosModeradoModerado
Replicación y backupsIntegradoHerramientas PostgreSQL
Mantenimiento y comunidadPrivado (MongoDB Inc.)Abierto y comunitario

¿Cómo se instala?

La forma más rápida de probar FerretDB es mediante Docker:

docker run -d --rm --name ferretdb -p 27017:27017 --platform linux/amd64 \
  -e POSTGRES_USER=ferret \
  -e POSTGRES_PASSWORD=ferretpw \
  ghcr.io/ferretdb/ferretdb-eval:2

Este contenedor incluye FerretDB, PostgreSQL y herramientas básicas para pruebas. Para producción, se recomienda instalar PostgreSQL de forma externa y configurar volúmenes persistentes.

También puedes:

  • Conectarte usando cualquier URI MongoDB: mongodb://ferret:[email protected]:27017/
  • Usar mongosh como cliente de línea de comandos
  • Ejecutar comandos PostgreSQL directamente con:
    docker exec -it ferretdb psql -U ferret postgres

Estado del proyecto y soporte

FerretDB está en constante evolución, con una comunidad activa y soporte comercial opcional. El proyecto ha ganado tracción en plataformas como Civo, Tembo o Elestio, que lo ofrecen como servicio gestionado. También está disponible como paquete binario y biblioteca Go para integraciones personalizadas.

Más información en:


FerretDB demuestra que es posible combinar lo mejor del mundo NoSQL con la potencia y estabilidad de los sistemas relacionales, sin perder la libertad tecnológica. Una opción cada vez más atractiva para quienes buscan reducir su dependencia de proveedores cerrados y mantener el control sobre sus datos.

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×