La elección entre una integración en tiempo real o por lotes no es una decisión puramente técnica. Determina qué sucede cuando un pedido cambia de estado, el stock se agota, una factura se corrige o un dato de cliente llega tarde a otro sistema. El error habitual consiste en asumir que el tiempo real siempre es mejor. En realidad, añade dependencias, puntos de fallo y exigencias operativas que solo compensan cuando el coste de esperar es mayor que esa complejidad.
La alternativa tampoco es ejecutar una exportación nocturna sin diseño. Un proceso por lotes puede ser seguro, eficiente y suficiente, pero necesita ventanas de actualización explícitas, controles de integridad y mecanismos de recuperación. La decisión correcta parte del caso de uso: qué dato se mueve, quién actúa sobre él, cuánto daño produce un desfase y qué ocurre si el mensaje llega dos veces o no llega.
La pregunta decisiva: qué pasa si el dato llega tarde, duplicado o no llega

Antes de debatir APIs, webhooks, colas o frecuencia de ejecución, describa el efecto de un fallo en términos de negocio y operación. Un dato no es crítico por pertenecer a un CRM, ERP o ecommerce; lo es por la decisión o ejecución que habilita.
- Llega tarde: determine el desfase máximo aceptable. Puede ser segundos para bloquear una transacción, minutos para alertar a un equipo u horas para consolidar informes.
- Llega duplicado: evalúe si el receptor podría crear dos pedidos, repetir un cobro, enviar comunicaciones duplicadas o simplemente actualizar el mismo registro.
- No llega: identifique si existe una vía manual, una consulta alternativa o una reconciliación posterior que evite pérdida de negocio.
- Llega con datos obsoletos: defina qué sistema tiene autoridad sobre cada campo y cómo se resuelven conflictos entre actualizaciones.
Conviene clasificar cada flujo por su finalidad. Una integración de consulta muestra información para orientar a una persona; una de decisión alimenta reglas, segmentaciones o prioridades; una de ejecución crea una acción irreversible, como reservar stock o emitir una factura; y una de comunicación desencadena mensajes a clientes o equipos. Las de ejecución suelen exigir más inmediatez y protección contra duplicados. Las de consulta o analítica normalmente admiten procesamiento diferido.
El tiempo real se justifica por una consecuencia concreta del retraso, no por la expectativa de que todos los sistemas reflejen siempre lo mismo.
Cuándo el tiempo real está justificado y qué exige
El patrón en tiempo real es razonable cuando un sistema necesita reaccionar inmediatamente para que otro pueda completar una operación correcta. Por ejemplo, una validación de disponibilidad antes de confirmar un pedido, el cambio de estado que habilita un envío o una alerta operativa que evita una incidencia mayor.
Hay una diferencia relevante entre “tiempo real” y “rápido”. Una llamada síncrona puede responder dentro de la interacción del usuario, pero también bloquea el proceso si el sistema remoto no está disponible. Un evento asíncrono emitido al producirse un cambio desacopla al emisor, aunque el consumidor puede procesarlo segundos después. Ambos patrones pueden satisfacer una necesidad de baja latencia, pero presentan riesgos distintos.
Señales de que el tiempo real aporta valor
- Una espera provoca una venta fallida, una operación inválida o una exposición operativa inmediata.
- El dato participa en una regla de autorización, reserva, asignación o prevención de fraude.
- Existe un responsable claro para operar incidencias fuera de horario si el flujo es crítico.
- Los sistemas pueden soportar reintentos, límites de consumo y picos de demanda sin bloquear procesos esenciales.
- El coste de mantener observabilidad y recuperación es menor que el coste de un desfase.
Adoptar este enfoque implica requisitos no negociables: tiempos de espera, reintentos con pausas progresivas, una cola o mecanismo equivalente para fallos transitorios, monitorización de errores y alertas accionables. También requiere definir qué hace la aplicación cuando la dependencia no responde. La respuesta no puede ser solo mostrar un error técnico: puede ser retener la operación, permitirla bajo revisión, guardar una solicitud pendiente o aplicar una regla temporal.
El principal riesgo es construir una cadena síncrona extensa: ecommerce consulta inventario, inventario consulta ERP y el ERP depende de otro servicio. Cada enlace aumenta la latencia y la probabilidad de indisponibilidad. Para reducirlo, limite las dependencias en línea a la información imprescindible y procese el resto de forma asíncrona.
Cuándo los procesos por lotes son más seguros y eficientes
Un proceso por lotes reúne cambios y los transfiere según una cadencia definida: cada hora, varias veces al día o al cierre de una ventana operativa. Es una opción adecuada cuando el receptor no necesita actuar de inmediato y puede trabajar con una imagen de datos con cierto retraso.
Este patrón suele encajar bien en sincronización de catálogos, informes, consolidación financiera, actualización de segmentos, importaciones históricas o intercambio de grandes volúmenes. Permite controlar la carga sobre sistemas con capacidad limitada, ejecutar validaciones antes de publicar datos y concentrar la supervisión en ventanas conocidas.
Señales de que un lote es suficiente
- El usuario o proceso receptor puede operar con datos de varias horas de antigüedad sin consecuencias materiales.
- El volumen es alto y una transmisión individual por cambio generaría una carga innecesaria.
- Las actualizaciones se consumen para análisis, planificación o tareas internas no urgentes.
- Se necesita validar, enriquecer o agrupar información antes de hacerla disponible.
- El equipo tiene una ventana clara para revisar excepciones y reprocesar.
El riesgo típico no es la latencia, sino la falsa sensación de control. Un lote mal diseñado puede sobrescribir cambios recientes, omitir registros por una marca temporal incorrecta o fallar a mitad de ejecución sin dejar claro qué parte se aplicó. Por ello, evite basar la extracción únicamente en “modificados desde la última hora” si los relojes, zonas horarias o reintentos no están controlados. Use cursores persistentes, intervalos solapados con deduplicación o registros de cambios cuando sea posible.
Además, cada ejecución debe producir un resultado verificable: cuántos registros se leyeron, cuántos se crearon, actualizaron, rechazaron o quedaron pendientes. Si no se pueden comparar esos conteos con el origen, la reconciliación será lenta cuando aparezca una discrepancia.
Modelo de decisión con cinco variables prácticas
Para cada flujo, puntúe estas variables entre bajo, medio y alto. La combinación permite evitar decisiones guiadas por preferencias tecnológicas.
- Tolerancia al desfase: ¿cuánto tiempo puede transcurrir antes de que el dato pierda utilidad? Si es de segundos o minutos y afecta a una ejecución, favorece un evento inmediato o una consulta en línea.
- Volumen y variabilidad: ¿cuántos cambios se producen y existen picos? Un flujo masivo y predecible suele beneficiarse de lotes; uno con pocos eventos críticos puede procesarse de inmediato.
- Dependencia operativa: ¿el sistema emisor debe esperar al receptor para continuar? Cuanto mayor sea la dependencia, más necesario es desacoplar mediante eventos y procesamiento asíncrono.
- Reversibilidad: ¿puede corregirse el resultado sin impacto relevante? Si una acción es irreversible o costosa de deshacer, priorice validación, idempotencia y trazabilidad, incluso si la latencia aumenta.
- Coste de fallo: incluya pérdida de ingresos, incumplimiento de procesos, carga manual y confianza del cliente. Un coste alto exige mejores controles, no necesariamente una llamada síncrona.
Una regla útil es esta: si la urgencia es alta pero la dependencia también, use un evento inmediato y procese de forma asíncrona. Así el cambio se registra sin obligar al sistema origen a depender de la disponibilidad instantánea del destino. Si la urgencia es baja y el volumen alto, un lote con reconciliación suele ser la opción más sencilla y robusta.
Patrones híbridos para equilibrar rapidez y control
Muchas integraciones maduras combinan ambos enfoques. El objetivo no es elegir una etiqueta única, sino asignar el patrón adecuado a cada parte del flujo.
- Evento inmediato y procesamiento diferido: al crearse un pedido se publica un evento; los sistemas secundarios lo consumen desde una cola sin bloquear la confirmación.
- Consulta inmediata y réplica por lotes: la aplicación consulta la fuente autorizada para una decisión crítica, mientras mantiene una copia local actualizada para búsquedas y análisis.
- Lote frecuente más reconciliación: se sincronizan cambios cada cierto intervalo y se ejecuta una comprobación diaria para detectar ausencias, diferencias de estado o errores parciales.
- Actualización urgente por excepción: el catálogo viaja por lotes, pero un cambio de disponibilidad relevante genera una actualización prioritaria.
En stock, por ejemplo, no todos los datos requieren la misma cadencia. La reserva asociada a la compra puede requerir una confirmación inmediata; la actualización de descripciones o atributos de producto puede esperar. En facturación, la emisión puede requerir reglas y validaciones estrictas, mientras que la exportación para análisis financiero puede ejecutarse en una ventana programada. En datos de clientes, una baja de comunicaciones debe propagarse con prioridad si evita envíos no deseados, pero la consolidación de campos de perfil puede ser diferida.
Controles comunes y recuperación ante incidencias
Sea cual sea el patrón, la fiabilidad depende de controles explícitos. Cada entidad debe tener un identificador estable y cada operación un identificador de mensaje o solicitud. El receptor necesita aplicar idempotencia: procesar dos veces la misma instrucción debe producir el mismo resultado que procesarla una sola vez.
- Defina el sistema de referencia para cada entidad y campo para evitar conflictos silenciosos.
- Conserve estados de procesamiento: recibido, validado, aplicado, rechazado y pendiente de reintento.
- Registre el origen, destino, fecha, versión del esquema y motivo de error de cada excepción.
- Separe los errores transitorios, como una caída temporal, de los errores permanentes, como un dato inválido.
- Establezca una cola de mensajes fallidos o un mecanismo de revisión para no perder elementos tras agotar reintentos.
- Diseñe cambios de esquema compatibles durante una transición y avise antes de retirar campos o alterar significados.
Las alertas deben apuntar a una acción concreta: acumulación de pendientes, antigüedad máxima sin procesar, tasa de rechazos o diferencia entre conteos del origen y destino. Una alerta por cada error individual genera ruido; una alerta por deterioro sostenido permite priorizar.
Checklist para acordar la decisión antes de construir

- Describa la acción de negocio que depende del dato y el desfase máximo aceptable.
- Documente qué ocurre ante retraso, duplicado, ausencia y conflicto de versiones.
- Identifique el sistema de referencia y los identificadores compartidos.
- Estime volumen medio, picos y límites del origen y destino.
- Decida si el emisor puede continuar cuando el receptor está caído.
- Defina reintentos, idempotencia, gestión de excepciones y reconciliación.
- Asigne responsables de monitorización y un procedimiento de recuperación.
- Pruebe caídas, reenvíos, ejecución parcial y cambios de esquema antes de activar el flujo.
La decisión más sólida no persigue sincronización instantánea en todos los sistemas. Busca que cada dato llegue cuando debe llegar, con un nivel de control proporcional a su impacto y con una recuperación previsible cuando la operación real se aparte del escenario ideal.
