Batch vs Streaming: la decisión que más impacta en la arquitectura de datos
Toda arquitectura de datos debe responder una pregunta fundamental antes de diseñarse: ¿con qué frecuencia necesitan actualizarse los datos para que sean útiles? La respuesta determina si la arquitectura debe ser batch (procesamiento periódico) o streaming (procesamiento continuo en tiempo real).
El procesamiento batch ejecuta transformaciones sobre un conjunto de datos acumulados en intervalos definidos: cada noche, cada hora, cada semana. Es simple, predecible y eficiente en coste. Para la mayoría de los informes de gestión, la contabilidad y los análisis históricos, el batch es la elección correcta.
El procesamiento en streaming procesa cada evento en el momento en que se produce, actualizando los sistemas aguas abajo con latencias de milisegundos a segundos. Es más complejo y caro, pero hay casos de uso donde no existe alternativa válida.
Cuándo el tiempo real es imprescindible
Detección de fraude: un modelo que evalúa si una transacción bancaria o un pago con tarjeta es fraudulento tiene segundos para actuar, no horas. El batch no sirve para este caso de uso.
Fijación dinámica de precios: en sectores como turismo, energía o transporte, los precios óptimos cambian en función de la demanda actual, la disponibilidad y las acciones de la competencia. La información que llega horas después ya no es accionable.
Monitorización industrial: una planta industrial que detecta anomalías en sus sensores necesita responder antes de que el problema se convierta en un fallo. Un sistema batch que revisa los datos cada hora puede perder el momento de intervención.
Dashboards operacionales en tiempo real: los equipos de operaciones de centros de llamadas, logística o producción necesitan visibilidad inmediata del estado del sistema, no una foto de hace varias horas.
Apache Kafka como infraestructura de streaming
Apache Kafka es el sistema de mensajería distribuida de referencia para arquitecturas de datos en tiempo real. Actúa como un bus de eventos que desacopla los sistemas productores de datos de los sistemas consumidores, permitiendo que múltiples aplicaciones procesen los mismos eventos de forma independiente y en el orden correcto.
Las características que hacen a Kafka la elección estándar en la industria son: alta disponibilidad y tolerancia a fallos, capacidad de retención de mensajes configurable (los consumidores pueden releer eventos pasados), rendimiento extremadamente alto (millones de eventos por segundo en clusters bien configurados), y un ecosistema maduro de conectores con prácticamente cualquier sistema de datos.
Alternativas gestionadas: Confluent Cloud (Kafka gestionado), Amazon Kinesis, Azure Event Hubs y Google Pub/Sub son alternativas cloud que reducen la carga operativa de gestionar un cluster Kafka propio.
Arquitecturas de referencia para streaming
Lambda Architecture: mantiene dos capas paralelas: una capa batch para datos históricos completos y una capa speed para los datos más recientes en tiempo real. Ambas capas se consultan de forma unificada. Garantiza consistencia pero implica duplicar lógica de procesamiento.
Kappa Architecture: unifica batch y streaming en un único pipeline de streaming, tratando los datos históricos como un stream muy largo. Más sencilla de mantener pero más exigente en términos de capacidad del stream.
Streaming moderno con Lakehouse: las plataformas Lakehouse actuales (Databricks, Microsoft Fabric) permiten ingestar streams de Kafka directamente en tablas Delta Lake con garantías ACID, simplificando la arquitectura y eliminando la separación entre batch y streaming.
Cuándo el tiempo real es excesivo
No todo necesita tiempo real. Implementar streaming donde el batch es suficiente añade complejidad, coste y riesgo sin beneficio real. Si el departamento de finanzas necesita un informe de ventas mensual consolidado, no hay ningún valor en procesarlo en tiempo real. La decisión debe partir siempre del caso de uso de negocio y la latencia que realmente necesita, no de la tecnología más avanzada disponible.
En AIRES Studio evaluamos los requisitos reales de latencia de cada caso de uso antes de proponer una arquitectura de streaming, evitando la sobrecomplexidad innecesaria.
Preguntas frecuentes sobre datos en tiempo real
¿Cuánto cuesta una arquitectura de streaming comparada con batch? Una arquitectura de streaming bien diseñada puede costar entre 2 y 5 veces más que una equivalente en batch, considerando infraestructura, complejidad de desarrollo y mantenimiento. Este coste está justificado solo cuando el caso de uso tiene requisitos reales de baja latencia. La evaluación debe comparar el coste de la arquitectura con el valor de negocio de la latencia reducida.
¿Kafka es difícil de gestionar? Un cluster Kafka on-premise tiene una complejidad operativa significativa: configuración de particiones, replicación, retención, monitorización de lag de consumidores. Las versiones gestionadas en cloud (Confluent Cloud, MSK de AWS, Event Hubs de Azure) eliminan gran parte de esta complejidad a cambio de un coste mayor. Para la mayoría de las empresas en Cantabria, comenzar con una solución gestionada es la decisión correcta.
¿Se puede combinar streaming con los modelos de IA existentes? Sí, y es uno de los casos de uso más valiosos. Un modelo de ML entrenado offline puede servir predicciones en tiempo real si se integra en el pipeline de streaming: cada evento (transacción, señal de sensor, visita web) se envía al modelo para inferencia y el resultado se publica de vuelta al stream. Esta arquitectura es la base de sistemas de recomendación en tiempo real, detección de fraude y alertas predictivas.