Twitter Real Time Dashboard


Buen ejemplo de aplicación de Real Time con  tecnologías Big Data para la ingesta de información de redes sociales, que luego podrá ser procesada, aplicar 'sentiment analysis', cruzar con información en un Data Lake, etc...
Acceder Dashboard
Arquitectura:

El  usuario o  API  envía palabras de  filtro  mediante una conexión  WebSocket ; en el servidor se crea una conexión con el cliente ( API  o usuario) obtenida a través del componente "Stream Holder", cuya función es gestionar la conexiones solicitadas.
El  "Stream Holder"  solicita una credencial al "Credentials Pool", con la cual se se abre una conexión con el  API  público de Twitter y envía una consulta especificando los filtros, el resultado son tweets en tiempo real recibidos a través del "Message Receiver".
El  "Message Receiver"  es un  sujeto  dentro del patrón  observer : cuando la conexión a Twitter recibe un tweet, lo notifica al "Message Receiver" y este, para no bloquear el  hilo  que lo invoca, usa una  Cola de Mensajes  para comunicarse con el "Server Socket", es decir, pone los mensajes en la cola y el "Server Socket" los recoge de allí.
Este proceso  optimiza  el tiempo de bloqueo en O(1), que es la  Complejidad Computacional  de insertar en una cola.
Esta solución es extensible a un número mucho mayor de nodos, en complemento con un  cluster  kafka  como se muestra en nuestra  demo con kafka .

Verlo en funcionamiento: