Hace ya más de un año! que publiqué Twilater. Una aplicación que se encargaba de recopilar los tweets, que la gente que sigues en Twitter, se guardaban en favoritos normalmente para leer más tarde. En aquel entonces, y cada día más, esos tweets son realmente interesantes, suponen un sistema de curación de contenidos automático del día a día, bastante eficaz.

La aplicación, además de mostrar los perfiles de los usuarios de forma pública, envía una news diaria o semanal con un resumen de los 50 tweets más guardados por tus contactos,  otros datos como los Rts recibidos, influyen en su clasificación.

Hasta aquí más o menos llega su funcionalidad, sencillo y efectivo, yo recibo la news a diario y la espero con interés, lo que contiene es realmente interesante y me lo había perdido!

Twilater fue un proyecto que desarrollé por 2 razones, sorprendentemente ninguna de ellas fue “ganar dinero”.

Una fue por propia necesidad, quería saber que se guardaba la gente que seguía en Twitter, sabía que sería interesante para mi, no podía ser de otra forma. Y la segunda, porque estaba haciendo mi primeros pinitos con un framework de desarrollo y quería probarlo en un proyecto real. Ambas cosas fueron un éxito.

El framework se comportó muy bien y el tiempo de desarrollo fue record, creo recordar que en una semana lo tenía terminado. Por otro lado, los resultados de tweets recopilados, como comento arriba,  también fueron muy buenos.

Peeero, Twilater escala muy mal. Desde hace tiempo solo recopila los favoritos de unos pocos usuarios, aquellos que han enviado sus credenciales/tokens Twitter y que están suscritos a su news (diaria o semanal) o que se logan cada poco para revisar su selección de tweets vía web. Esto reduce el número a unos pocos incondicionales y conocidos. Twilater podría hacer mucho más pero necesitaría mejores servidores y capacidad de proceso, cosa que no tiene ni va a tener, porque no produce ni 1 €.

El modelo actual es completamente centralizado. Los usuarios se logan en el sistema y el sistema es el que se encarga de ir recopilando los favoritos mediante el uso del 14% del API del propio usuario. Cada usuario tenemos 350 peticiones a la API por hora y Twilater utiliza 50 de ellas. Actúa como si fuese un cliente más, de otra forma sería imposible.

twilater-centralizado

En el modelo centralizado los usuarios reciben los resúmenes mediante news y publica también esa información en perfiles públicos. Toda la carga de proceso, gestión de tokens y llamadas al API de Twitter está centralizada. Si el número de usuarios crece la cosa se va de madre y el motor representado por un círculo se hace más grande, lento e ineficaz.

Estos días he estado pensando en darle una vuelta al sistema ¿que pasaría si cambiamos a un sistema distribuido? ¿Y si es cada usuario quien gestiona su propio motor, su API y su generación de selección de Tweets?

Twilater no necesitaría de más potencia para escalar, más allá de una buena BD para recopilar toda esa información. Esta solución ya no sirve para cualquier usuario, pero sí para aquellos que mantengan un blog WordPress, por ejemplo.

Imagináos que cada usuario pone a funcionar un plugin en WordPress donde puede configuar las opciones de su motor:

  • % de llamadas a la API a utilizar.
  • Nº de tweets que considera importantes en un resumen.
  • Frecuencia de envío de la newsletter (se la enviaría su propio WordPress, una cosa menos a gestionar en el servidor).
  • Publicación automática de su perfil público en su blog vía shortcode en una página.
  • Etc.

Este sería el esquema del modelo distribuido:

twilater-distribuido

WordPress, mediante el plugin, se encargaría de generar esa selección de tweets, el usuario tendría su selección vía web (en su propio blog) y vía newsletter, como hasta ahora. Y además, esos datos serían enviados a Twilater de forma automática donde se recopilaría lo mejor de cada usuario. Esto nos permitiría poder elaborar listas de tweets más interesantes por temáticas y fechas de forma pública en Twilater.

La necesidad de proceso para un solo perfil es ridícula, la cantidad de información y su calidad crecería de forma importante, los usuarios tendrían sus necesidades cubiertas. Twilater no necesitaría de ninguna potencia de proceso, solo una BD donde almacenar esa información y una interface para mostrarla, cosas que ya existen.

Voy a hacer unas pruebas en WordPress y es muy posible que en unos días publique el plugin. Ya contaré….