S4 es un nuevo proyecto Java abierto generado por los laboratorios de Yahoo!, orientado al procesamiento masivo de información.
Ya están establecidas como práctica corriente para este tipo de escenarios tecnologías como MapReduce o su implementación abierta Hadoop, pero hasta ahora casi todas ellas trabajaban por lotes (en batch), iniciando el procesamiento a raíz de un proceso interactivo (como una búsqueda) o programado con cierta frecuencia.
S4 está diseñado para procesar los datos a medida que van llegando (en forma de stream), sin almacenamiento intermedio. La arquitectura se basa en el modelo de actores, retomando una tendencia impulsada últimamente por Akka, Io y SALSA, e implementada localmente por el ubicuo Angel "Java" López en AjAgents.
Las características principales que busca S4 son proveer un servicio indefinidamente escalable en función a agregar nodos al cluster, descentralizado en la medida en que todos los nodos son iguales, parcialmente tolerante a fallas donde los eventos pueden volver a enrutarse en caso de fallas en cualquier nodo, elástico en la medida en que la carga se distribuye automáticamente a través de los nodos, expansible a través de un API simple y orientada a objetos, donde la comunicación entre nodos se escribe utilizando POJOs (plain Java objects).
Hay un tutorial basado en una aplicación que procesa mensajes de Twitter.