Ably es una plataforma de mensajería en tiempo real en la nube que proporciona infraestructura para comunicación pub/sub, presencia y sincronización de estado. Está diseñada para proyectos empresariales con altos requisitos de fiabilidad y disponibilidad global. Según la documentación oficial de Ably (2025), la plataforma garantiza un 99.999% de tiempo de actividad y una latencia de entrega inferior a 65 ms en el percentil 95.
Puntos clave
Ably es una plataforma en la nube en tiempo real fundada en 2014 que proporciona infraestructura para mensajería en tiempo real. A diferencia de los servicios pub simples, Ably ofrece garantías de entrega de nivel empresarial, una red global de puntos de presencia (POP) y sincronización de estado integrada para millones de clientes concurrentes.
La plataforma se utiliza en proyectos donde la fiabilidad de entrega es crítica: tickers financieros, rastreadores logísticos, sistemas de monitoreo médico y juegos multijugador. Ably se basa en su propia tecnología de broker de mensajes distribuido, que replica datos a través de una red global de más de 15 centros de datos.
Según el sitio web oficial de Ably (2025), la plataforma procesa más de 200 mil millones de mensajes al mes para más de 50 000 aplicaciones activas. Entre los clientes se incluyen empresas de la lista Fortune 500: Toyota (telemática automotriz), HubSpot (sincronización CRM), Designity (edición colaborativa).
La arquitectura de Ably se basa en una red distribuida de brokers de mensajes (routers) conectados mediante canales de alta velocidad. Cada broker atiende un subconjunto de canales y replica el estado mediante el Protocolo Ably, un protocolo binario sobre WebSocket optimizado para una sobrecarga mínima. Los clientes se conectan al broker más cercano mediante equilibrio de carga DNS.
Un diferenciador clave de Ably frente a los competidores es el log global integrado, que almacena el historial de mensajes de cada canal. Esto permite a los nuevos suscriptores recibir no solo mensajes nuevos, sino también anteriores (replay), lo que es fundamental para la auditoría y la recuperación del estado después de una reconexión.
El modelo de interacción de Ably sigue el patrón Publicador-Suscriptor con capacidades adicionales. El publicador envía un mensaje a un canal a través de la API REST de Ably o su SDK. El mensaje ingresa en el log distribuido global del canal y se distribuye a todos los suscriptores a través de sus conexiones activas.
Capa de transporte — Ably soporta múltiples protocolos: WebSocket (principal, con Protocolo Ably binario), Server-Sent Events (para recepción unidireccional), HTTP streaming (para entornos restringidos) y MQTT (para dispositivos IoT). El cliente selecciona automáticamente el transporte disponible con la menor latencia.
Cada mensaje pasa por una validación en el lado de Ably: verificación de firma de clave API, verificación de cuota del canal, derechos de acceso. La validación ocurre en 1–5 ms en el router de borde, después de lo cual el mensaje se replica en el log global. Según el blog técnico de Ably (2024), la latencia de extremo a extremo es inferior a 65 ms para el 95% de los mensajes durante la transmisión intercontinental.
Los canales de Ably son temas con nombre para el intercambio de mensajes. Cada canal puede tener un número ilimitado de suscriptores, pero para un rendimiento estable se recomienda no superar los 10 000 por canal dentro de una zona. Los canales pueden ser unidireccionales (publicación solo desde el servidor) o full-duplex (los clientes publican mensajes).
El modelo Pub/Sub en Ably extiende el patrón clásico con capacidades adicionales: presencia de suscriptores, historial de mensajes, estado del canal y espacios de nombres. Cada canal pertenece a un espacio de nombres que define cuotas y derechos de acceso.
Presencia — seguimiento automático de los participantes del canal. Cada cliente suscrito a un canal se registra en el mapa de presencia con clientId, estado (online, away, offline) y datos arbitrarios. Cuando un cliente se desconecta (por tiempo de espera o explícitamente), la presencia se actualiza automáticamente.
Historial de mensajes — cada canal almacena el historial de mensajes por defecto (hasta 2 minutos o 100 mensajes en el plan gratuito). En los planes de pago, el historial puede ampliarse hasta 72 horas con acceso retrospectivo arbitrario. El historial se almacena en un log distribuido con garantías de inmutabilidad (solo anexión).
| Función | Plan gratuito | Plan Enterprise |
|---|---|---|
| Conexiones simultáneas | 100 | 10 000+ |
| Retención de historial | 2 minutos / 100 mensajes | 72 horas |
| Garantía de entrega | At-least-once | Exactly-once |
| Regiones | 1 región | Todas las 15+ regiones |
| SLA | 99.9% | 99.999% |
Las garantías de entrega son un diferenciador clave de Ably frente a la mayoría de los servicios en tiempo real. La plataforma soporta varios modos de entrega, seleccionables al publicar un mensaje. El modo determina cuántas veces se entregará un mensaje y cómo se manejan los fallos de conexión.
At-least-once — el mensaje se entrega al menos una vez, son posibles los duplicados. Este modo se utiliza para notificaciones y datos no críticos donde los duplicados no causan daño. Exactly-once — el mensaje se entrega exactamente una vez mediante deduplicación en el lado del cliente y del servidor. Este modo es obligatorio para transacciones financieras y gestión de dispositivos.
Last-value cache — un modo especial donde el canal almacena el último valor de cada mensaje con nombre. Un nuevo suscriptor recibe instantáneamente el estado actual sin esperar el siguiente evento. Esto se implementa mediante un almacén global clave-valor en cada router. Según la documentación de Ably (2025), last-value cache reduce el tiempo de recuperación del estado después de la reconexión de 2–5 segundos a 50–100 ms.
Comenzar con Ably requiere registro, creación de una aplicación y obtención de una clave API. Las bibliotecas están disponibles para todas las plataformas principales. Veamos un ejemplo de publicación y suscripción usando el SDK de JavaScript. El cliente se conecta con una clave API, se suscribe a un canal y adjunta un manejador de eventos.
Según la documentación de Ably (2025), se recomienda usar diferentes claves API para la parte del servidor y del cliente con permisos mínimos (principio de mínimo privilegio). La clave del servidor puede publicar en cualquier canal, mientras que la clave del cliente solo puede suscribirse a espacios de nombres específicos.
import * as Ably from 'ably';
const client = new Ably.Realtime({
key: 'YOUR_API_KEY',
clientId: 'user-123'
});
const channel = client.channels.get('test-channel');
channel.subscribe('update', (message) => {
console.log('Received:', message.data);
});
channel.publish('update', {
text: 'Hello from Ably',
priority: 1
});
const Ably = require('ably');
const rest = new Ably.Rest({ key: 'SERVER_API_KEY' });
const channel = rest.channels.get('test-channel');
channel.publish('server-event', {
type: 'notification',
payload: { userId: 100, text: 'Server message' }
}).then(() => {
console.log('Message published via REST');
});
Elegir entre Ably y Pusher depende de los requisitos del proyecto. Ambas plataformas proporcionan infraestructura en tiempo real alojada, pero difieren en arquitectura, garantías y precios. Ably está enfocada en empresas con altos requisitos de fiabilidad, mientras que Pusher está orientada a un inicio rápido y simplicidad.
Ably utiliza un log distribuido global para cada canal, lo que garantiza entrega exactly-once y acceso retrospectivo al historial. Pusher utiliza una arquitectura de broker con garantías at-least-once. Para la mayoría de las aplicaciones, la diferencia es imperceptible, pero para sistemas financieros y médicos, exactly-once es crítico.
Según una prueba comparativa de Ably vs Pusher (2024), Ably demuestra una latencia 20–30% menor para transmisión intercontinental debido a un mayor número de centros de datos. Pusher gana en velocidad de integración: la configuración básica toma de 10 a 15 minutos frente a los 20 a 30 minutos de Ably debido a más opciones de configuración.
El SDK de Ably para plataformas móviles soporta iOS (Swift), Android (Kotlin/Java), Flutter y React Native. Los clientes móviles son totalmente compatibles con el lado del servidor de Ably y soportan todas las funciones: pub/sub, presencia, historial, notificaciones push. Para Android, está disponible la integración con Firebase Cloud Messaging para la entrega de notificaciones push fuera de línea.
Optimización para redes móviles — el SDK de Ably utiliza heartbeat adaptativo: en Wi-Fi, el intervalo es de 15 segundos, en redes móviles — hasta 60 segundos para ahorrar tráfico. Ante una pérdida de conexión, el SDK cambia a un transporte de respaldo (HTTP streaming) sin demora visible para el usuario. El consumo promedio de tráfico es de 0.5–1 KB por minuto en modo de espera.
Notificaciones push — Ably soporta el envío de push a través de APNs (Apple) y FCM (Firebase). El push puede dirigirse a un canal específico o clientId. Si el cliente está activo (WebSocket conectado), el mensaje se entrega a través del canal. Si el cliente está desconectado, el mensaje se entrega como notificación push. Esto garantiza que el usuario nunca se pierda un mensaje importante.
Preguntas frecuentes
Ably ofrece entrega exactly-once, un log distribuido global y 99.999% SLA. Pusher es más simple de configurar pero proporciona solo garantías at-least-once. Ably suele ser elegida por proyectos empresariales con altos requisitos de fiabilidad.
El plan gratuito incluye 100 conexiones simultáneas y 500 000 mensajes al mes. Los planes de pago comienzan en $19/mes (1000 conexiones). El precio empresarial con garantías personalizadas se discute individualmente.
Sí, exactly-once es una de las funciones clave de Ably. La deduplicación se realiza en el lado de la plataforma utilizando identificadores únicos de mensaje (message ID + connection ID).
Actualmente, Ably cuenta con más de 15 puntos de presencia en todo el mundo, incluyendo EE. UU., Europa, Asia, Australia y Sudamérica. Los clientes empresariales pueden seleccionar regiones específicas para el almacenamiento de datos.
Sí, Ably soporta el protocolo MQTT para dispositivos IoT con bajo consumo de energía. Los SDKs ligeros con uso mínimo de memoria están disponibles para dispositivos con ESP32, Arduino y Raspberry Pi.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.
Lea también