La programación siempre se ha movido por modas. Unas veces, un lenguaje o framework son el futuro y, al año siguiente, ya nadie habla de ellos. ¿O acaso alguien se acuerda de Backbone.js o de cuando Ruby on Rails iba a desbancar a PHP?
Hace unos años, se empezó a hablar del Big Data y, por ende, de las bases de datos NoSQL. Big Data estaba de moda y se notaba. Aparecía en cualquier noticia del telediario, los alcaldes hablaban de cómo el Big Data nos iba a cambiar la ciudad y hasta la tienda de la esquina decía que la utilizaba para analizar comportamientos de compra y así reponer productos con antelación. De repente, en todos los proyectos parecía necesario Redis o MongoDB. Vi arquitectos que no eran capaces de hacer una simple join convertirse en expertos en Big Data. Y no solo eso, te daban sabios consejos del tipo: si la base de datos tenía más de un millón de registros, no se podía utilizar SQL y se debía utilizar Big Data. Por supuesto, el problema era que, al no dominar SQL, cualquier consulta con un millón de registros era más lenta que un caracol. ¿Solución? ¡Big Data para todos!
Pero ahora, Big Data ya no es lo más en la programación. Una nueva tecnología ha ascendido y le ha arrebatado su popularidad. Ahora, la nueva estrella es la arquitectura Netflix. ¿Su anterior proyecto fracasó? Eso es porque no utilizó la arquitectura Netflix. ¿O quizás no fue por eso?
La arquitectura Netflix se llama así porque la desarrolló Netflix buscando una solución a un problema concreto: el suyo. Por ejemplo, ¿cuánta gente mira la televisión a las cinco de la mañana? Muy poca. ¿Y a las nueve y media de la noche? Muchísima más. ¿Cuántos servidores necesitaba Netflix? Tantos como para dar servicio al máximo pico de usuarios simultáneos. El problema, claro, es que después de unas horas los servidores reducen su carga y ya no son necesarios. Como Netflix alquilaba los servidores a Amazon, se les ocurrió que lo que tenían que hacer era poder encender o apagar los servidores automáticamente según el número de clientes conectados. ¿Hay pocos usuarios? Cierro servidores y de paso me ahorro dinero. ¿La gente se pone a ver la televisión después de la cena? Los servidores se van encendiendo según necesidad. Elegante y útil. Y esto es solo un problema al que dan solución; existen muchos más.
Ahora bien, nada de esto es gratis. Para que esto funcione, Netflix ha tenido que utilizar tecnologías (Microservicios, por ejemplo) que dificultan cierto tipo de programación. La integridad referencial en bases de datos es una de ellas, las transacciones es otra. Quizás puede parecer poca cosa, pero los que llevamos algo de tiempo en esto y hemos programado sin integridad referencial o sin transacciones les tenemos cierto cariño porque facilitan la vida mucho. Pero mucho, mucho. ¿Por qué hace esto Netflix? Porque, en su modelo de negocio, el video streaming, estas tecnologías no son críticas.
Ahora pensemos. ¿Es buena la arquitectura Netflix? Sin lugar a dudas. ¿Significa eso que en mi próximo proyecto debo utilizar la arquitectura Netflix? No. Como he dicho, la arquitectura Netflix se pensó para un problema concreto: el de Netflix. ¿Tiene tu modelo de negocios alguna similitud con el de Netflix? En la mayoría de los casos, la respuesta es no. ¿Entonces, qué te hace suponer que necesitas su arquitectura? He visto gente proponer arquitectura Netflix para proyectos de no más de cinco usuarios concurrentes. Menos de cinco y ponen una arquitectura para dar soporte a millones. En otros casos, la utilizan en proyectos donde las transacciones o la integridad referencial son críticas. Pero oye, si Netflix está de moda, será por algo.
¿Cuál es la siguiente moda? Solo hace falta ver LinkedIn para darse cuenta: Blockchain. Las criptomonedas están de moda, por lo tanto, Blockchain mola. Ya he visto propuestas de Blockchain para todo y se habla de ella como “la tecnología que cambiará los negocios”.
Así que ya sabes, cuando alguien te proponga utilizar una nueva tecnología como Netflix o Blockchain en tu próximo proyecto, pregúntate: ¿Realmente lo necesito? ¿Qué me aporta respecto a otras tecnologías? ¿Qué me quita? Y, basándote en esas respuestas, toma tu decisión. Pero, por favor, no lo hagas solo porque está de moda.