Cómo se generan los identificadores únicos de los tweets

por | 30 septiembre, 2019

Buenas

¿Se han preguntado alguna vez cómo es posible que todos los tuits, con los miles de millones que generamos al día, tengan un identificador único?

Hoy les voy a contar una aproximación simple a esto.

Twitter, como todos los grandes sistemas que generan esos volumenes de información, utiliza un sistema para generar los identificadores únicos de cada tweet, que además debe permitir mantener un orden cronológico de cada uno de ellos. Para ello usa un método llamado Snowflake (Copo de nieve) aludiendo a la característica de estos copos que hace a cada uno de ellos único. En realidad como Snowflake es como se conoce este servicio que genera estos identificadores únicos.

Cuando vemos un tuit si nos fijamos en el enlace del mismo podemos ver el identificador, pero en realidad contiene bastante más información, ya saben que esto es muy común en Twitter, que la que apreciamos

Pongo un ejemplo con un tuit de mi cuenta suspendida. De hecho es el último tuit que escribí. Ains.

Les pido que se fijen en la parte subrayada en amarillo arriba en el enlace. Ese es el identificador del tuit. La fecha la he marcado también para «enseñarles» algo.

Los Id´s únicos de cada Tweet los vemos en modo Texto, pero vamos a quedarnos con su valor como número : 1164106327217639425

Ahora vamos a convertir esa cifra decimal en binario, pueden usar cualquier convertidor, Google es su amigo :

1000000100111101111001000100101110010100101111001000000000001

Esta cadena la descomponemos empezando por el final

Los 12 primeros nos indican el orden del tuit : 000000000001 = 1 . El primero

Los 5 siguientes corresponden al servidor donde se generó

11001 = Servidor 25

Los 5 restantes son el Data Center donde se generó

01011 = Data Center Nº 11

Es decir este tuit es el primero del servidor 25 del Data Center 11

Pero y el resto de la cadena, ¿Qué significa?. Pues es la fecha y hora en formato Epoch/Unix del mismo. Este formato nos permite datar de forma numérica con precisión de milisegundos. ¿Cómo?

Pues si seguimos mi ejemplo y retiramos las cadenas que ya hemos interpretado nos queda

100000010011110111100100010010111001010

Lo convertimos en decimal y nos dará el valor

277544576458

A ese valor le debemos sumar la cifra de control que utiliza Twitter en Snowflake

1288834974657

277544576458 + 1288834974657 = 1566379551115

Si convertimos esa cifra al formato Epoch el resultado es

GMT: Wednesday, 21 August 2019 9:25:51.115
Es decir, Miércoles, 21 de agosto de 2019 a las 11:25:51.115 GMT+02:00 . A las 11:25:51 con 115 milisegundos

¿Se acuerdan de la fecha subrayada de la imagen?

Pues bien, ya han visto como Twitter es capaz de generar Id´s a nuestros tweets, y qué información lleva un simple enlace de un tweet.

¿Aplicaciones prácticas?. Pues… Bueno, eso lo dejaremos para otro día, pero un ejemplo claro es comprobar la autenticidad de un tweet al que se le ha hecho una captura. Es fácil Photosopear un tweet, pero su Id?. Si siguen este método pueden ver si es falso, y cuando realmente se creo. Si se hizo, claro.

Yo como siempre lo único que intento es divulgar, entretener y explicar cosas enormemente complejas de una manera sencilla.

2 pensamientos en “Cómo se generan los identificadores únicos de los tweets

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.