¿Por qué decidir usar CouchDB?

Hace unas semanas, platicando con un posible mentor sobre un nuevo desarrollo en el que estoy trabajando, salió esa pregunta;

¿Por qué decidiste usar CouchDB si nunca lo has usado y por qué no utilizar MySQL?

Lo primero que se me vino a la mente fue:
– Porque quiero aprender CouchDB – 

Esa fue la primera parte de mi respuesta y al parecer, no fue una respuesta muy satisfactoria.

Lo que sucede es que las personas que se quieren involucrar en los proyectos como mentores, inversionistas y/o cofundadores saben que todo es un riesgo, pero ellos saben y quieren trabajar con el riesgo de hacer crecer un proyecto, no con el hecho de que el proyecto no se complete por deficiencias técnicas o incluso, que ni siquiera arranque por las mismas razones.

“¿Cómo apoyarte, si es posible que ni arranques el proyecto porque nunca has usado tal tecnología?”

Y se entiende perfectamente, no van a apoyarte y a invertir su tiempo para que tú aprendas, así no funcionan los “negocios”.

Entonces tuve que dar más solidez a mi respuesta agregando algunos puntos (todos debatibles):

- La idea del desarrollo es que sea una aplicación o servicio escalable.

- No tienes tablas de relaciones ni esquemas como cuando usas RDBMS y por consiguiente, evitas hacer demasiados “Joins” entre las tablas.

- En teoría, si algo le pasa al sistema es fácil recuperar los datos.

- La replicación de los sistemas es bastante sencilla.

- Simplifica en cierta forma, nuestro diseño de base de datos.

Sobre los puntos anteriores, me gustaría agregar que solo expresan de manera sencilla unas de las virtudes (por llamarlas de alguna manera) de las bases de datos NoSQL como en este caso CouchDB, pero esto no las hacen ni mejores ni peores que las relacionales.

Obviamente, saber las ventajas no garantiza el éxito, pero creo que el punto a favor es que si todo sale bien al utilizar nuevas tecnologías, iremos un paso adelante y habremos superado uno de primeros obstáculos de muchos que nos enfrentaremos en nuestros futuros proyectos.

Más adelante espero hacer un análisis más detallado de todas las prestaciones que ofrecen las bases de datos no relacionales, como el manejo de los datos basados en JSON, cómo es el tipo de base de datos orientadas a documentos y sobre todo, lo que más problema le dará a los que venimos de bases de datos relaciones… como utilizar e implementar en código Map/Reduce.

It is not the strongest of the species that survives, nor the most intelligent. It is the one that is most adaptable to change.

Puedes dejar un comentario, o enlazar el post desde tu propia página.

Hasta ahora van 4 comentarios ¿Quieres dejar uno?

  1. eduarbo comentó:

    Buen artículo! Me gusta tu postura neutral hacia CouchDB ya que la verdad no existe una mejor o peor tecnología, sino la que mejor se adapta a nuestras necesidades en determinada circunstancia. Y pues a esperar los demás artículos que mencionas :P

    Saludos.


    May 12 del 2011 | Hora: 5:22 am
  2. Arath Velázquez comentó:

    Exacto, cada quién utiliza la tecnología como la necesita y pues también a nuestras capacidades.

    Ya ando trabajando en otros artículos, espero salgan pronto! Saludos y gracias por el comentario.


    May 13 del 2011 | Hora: 2:23 pm
  3. lodopidolo comentó:

    Me gusta tu posicionamiento y valentía a la hora de escoger la herramienta que consideras oportuna.

    Yo estoy en la misma situación que tú. Quiero afrontar un nuevo proyecto con CouchDB.

    Quisiera preguntarte qué documentación has seguido.

    He leído «CouchDB: The Definitive Guide» y creo que es sólo introductoria o básica.

    Me gustaría saber si vas a utilizar couchapp, así como las funciones js y plantillas json: http://guide.couchdb.org/editions/1/en/show.html#templates

    Es justamente en este último aspecto donde estoy más perdido.

    Un saludo.


    October 28 del 2011 | Hora: 12:16 pm
  4. Arath Velázquez comentó:

    Hola Lodopidolo, gracias por tu comentario.

    Esa guía de CouchDB deja mucho que desear a la hora de la práctica.
    Lo que usé fue un pequeño framework para PHP que me facilitó varias tareas y sobre lo de los templates, en el mismo FUTON (la interfaz de CouchDB) creé las vistas y solo las “mandaba llamar” con los mismos métodos y funciones del framework.

    Y sobre lo de CouchApp y JS desde el servidor, dudo mucho que lo vaya a implementar.


    October 29 del 2011 | Hora: 6:19 am

Nombre

Mail

Página

Puedes utilizar las siguientes etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Mensaje