Contribuciones de Twitter al software libre

Es cierto que Twitter ha tenido muchos problemas técnicos y también es cierto que les ha tomado mucho tiempo arreglarlos, pero el sitio es mucho mas estable ahora.

Toda esta experiencia que están adquiriendo parece que no se va a ir por un caño si Twitter deja de existir, porque están compartiendo un par de proyectos con el que han hecho al sitio mucho mas escalable; Kestrel y Cache-Money.

FAIL

Kestrel

Es un sistema de mensajes en espera, es decir, un sistema que funciona algo así como un correo postal, donde quien envía el mensaje no necesita estar conectado con el destinatario del mismo, sino que Kestrel lo guarda hasta que el destinatario pide por el.

Los de Twitter no aclaran todo el uso que le dan, pero si mencionan que lo utilizan por lo menos con su sistema de SMS. Tu twitteas algo, Kestrel lo guarda y su sistema de SMS recoge el mensaje para enviarlo por el operador deseado.

Cache-Money

Es un plugin de Rails que implementa el cacheo «write-through» con memcached de por medio. El concepto es muy sencillo:

En un escenario normal tu escribes algo a la base de datos, esta se replica y entonces, cuando haya una petición a tu servicio, memcached se encarga de pedir el contenido a la base de datos y guardarlo. Esto trae un problema si tu servicio es muy concurrido (como lo es Twitter), ya que los datos pueden ser pedidos a memcached antes de que la base de datos ni siquiera haya terminado de guardar la información.

En cambio, si guardas la información primero en memcached y después guardas en la base de datos, cuando tengas una petición memcached no necesitara pedirle nada a la base de datos y no importa que esta tarde mas guardando. Esto es justo lo que hace Cache-Money.

Enlaces: Kestrel, Cache-Money.