* backend: Principalmente usan pila basada en JVM.
* Java, Scala y Kotlin: Estos son los principales lenguajes de programación.
* Finagle: Un sistema RPC agnóstico de protocolo tolerante a fallas para construir servidores de alta concurrencia.
* mesos: Un administrador de clúster de código abierto utilizado para abstracto de la CPU, la memoria, el almacenamiento y otros recursos de cálculo de las máquinas.
* Thrift: Un marco para el desarrollo escalable de servicios cruzados.
* Almacenamiento de datos:
* mysql: Utilizado para un montón de almacenamiento de datos básicos. Sin embargo, debido a la escala de Twitter, fragmentan en gran medida sus bases de datos MySQL.
* Cassandra: Una base de datos NoSQL utilizada para almacenamiento y recuperación de datos de alta velocidad y alta velocidad.
* hadoop/hdfs: Utilizado para el procesamiento y análisis de datos a gran escala.
* Memcached: Un sistema de almacenamiento en caché de objetos de memoria distribuido utilizado para acelerar el acceso a datos solicitados con frecuencia.
* Redis: Un almacén de estructura de datos en memoria, utilizado como base de datos, caché y corredor de mensajes.
* servidores web:
* nginx: Un servidor web popular y de alto rendimiento y un proxy inverso utilizado para manejar el tráfico web entrante.
* colas de mensajes:
* kafka: Una plataforma de transmisión distribuida para construir tuberías de datos en tiempo real y aplicaciones de transmisión. Utilizado para manejar el flujo masivo de tweets y otros eventos.
* Buscar:
* Lucene/Elasticsearch: Potencia de la funcionalidad de búsqueda de Twitter.
Consideraciones importantes:
* Arquitectura de microservicios: Twitter se construye como una colección de microservicios, lo que significa que tienen muchas aplicaciones independientes y más pequeñas que funcionan juntas. Cada microservicio puede usar diferentes tecnologías más adecuadas para su propósito específico.
* Soluciones personalizadas: A escala, Twitter probablemente ha desarrollado y personalizado muchas de sus propias herramientas y sistemas internos para abordar sus necesidades específicas.
* Infraestructura en la nube: Si bien Twitter históricamente ejecutó gran parte de su propia infraestructura, están aprovechando cada vez más proveedores de la nube como Google Cloud Platform (GCP) y Amazon Web Services (AWS) para algunos de sus servicios.
En resumen, Twitter no confía en un solo tipo de servidor, sino que utiliza una combinación de tecnologías para admitir las necesidades de funcionalidad, procesamiento de datos y escalabilidad del sitio web.