Ably — шта је то, real-time Pub/Sub платформа и како ради

Аутор: IT Sectr Објављено: 2026-06-01 Време читања: 8 мин

Ably — облачна платформа за размену порука у реалном времену која пружа инфраструктуру за pub/sub комуникацију, присуство и синхронизацију стања. Намењена је enterprise пројектима са високим захтевима за поузданошћу и глобалном доступношћу. Према званичној документацији Ably (2025), платформа гарантује 99,999% uptime и кашњење испоруке мање од 65 ms у 95. перцентилу.

Главно

  • Ably — enterprise платформа за комуникацију у реалном времену са глобалном мрежом центара података.
  • Pub/Sub модел — објављивање и претплата на канале путем WebSocket, Server-Sent Events и HTTP streaming-а.
  • Гаранције испоруке — подршка за режиме at-least-once, exactly-once и last-value cache за критичне податке.
  • Присуство и синхронизација — праћење онлајн учесника канала и аутоматска синхронизација стања.
  • SDK за 20+ платформи — готови клијенти за JavaScript, Swift, Kotlin, Flutter, React Native и серверске језике.

Шта је Ably?

Ably — облачна платформа у реалном времену, основана 2014. године, која пружа инфраструктуру за размену порука у реалном времену. За разлику од једноставних pub сервиса, Ably нуди корпоративне гаранције испоруке, глобалну мрежу тачака присуства (POP) и уграђену синхронизацију стања за милионе истовремених клијената.

Платформа се користи у пројектима где је поузданост испоруке критична: финансијски тикери, логистички тракери, медицински системи за праћење и мултиплејер игре. Ably се заснива на сопственој технологији дистрибуираног брокера порука који реплицира податке кроз глобалну мрежу од 15+ центара података.

Према званичном сајту Ably (2025), платформа обрађује преко 200 милијарди порука месечно за 50.000+ активних апликација. Међу клијентима су компаније са Fortune 500 листе: Toyota (телематика возила), HubSpot (синхронизација CRM), Designity (заједничко уређивање).

Архитектура Ably

Архитектура Ably је изграђена на дистрибуираној мрежи брокера порука (рутера) који су повезани брзим каналима. Сваки брокер опслужује подскуп канала и реплицира стање путем Ably протокола — бинарног протокола преко WebSocket-а, оптимизованог за минимални оверхед. Клијенти се повезују на најближи брокер путем DNS балансирања.

Кључна разлика Ably-ја од конкурената је уграђени глобални дневник (global log) који чува историју порука за сваки канал. Ово омогућава новим претплатницима да примају не само нове, већ и претходне поруке (реприза), што је критично за ревизију и обнављање стања након поновног повезивања.

Како ради Ably

Модел интеракције Ably прати образац Publisher-Subscriber са додатним могућностима. Издавач шаље поруку у канал путем Ably REST API-ја или SDK-а. Порука улази у глобални дистрибуирани дневник канала и шаље се свим претплатницима путем њихових активних веза.

Транспортни слој Ably подржава неколико протокола: WebSocket (главни, са бинарним Ably протоколом), Server-Sent Events (за једносмерни пријем), HTTP streaming (за окружења са ограничењима) и MQTT (за IoT уређаје). Клијент аутоматски бира доступни транспорт са најмањим кашњењем.

Свака порука пролази кроз валидацију на страни Ably-ја — провера потписа API кључа, квоте канала, права приступа. Валидација се одвија за 1–5 ms на ивичном рутеру, након чега се порука реплицира у глобални дневник. Према техничком блогу Ably (2024), кашњење од краја до краја (end-to-end) је мање од 65 ms за 95% порука при међуконтиненталном преносу.

Канали и претплате

Канали Ably — именоване теме за размену порука. Сваки канал може имати неограничен број претплатника, али за стабилне перформансе препоручује се не више од 10.000 по каналу у оквиру једне зоне. Канали могу бити једносмерни (објављивање само са сервера) или потпуни (клијенти објављују поруке).

Канали и Pub/Sub модел у Ably

Pub/Sub модел у Ably проширује класични образац додатним могућностима: присуство претплатника (presence), историја порука (history), стање канала (channel state) и именски простори (namespaces). Сваки канал припада именском простору који одређује квоте и права приступа.

Присуство (Presence) — аутоматско праћење учесника канала. Сваки клијент који се претплати на канал региструје се у мапи присуства са clientId, статусом (online, away, offline) и произвољним подацима. Приликом искључивања клијента (по тајмауту или експлицитно) присуство се аутоматски ажурира.

Историја порука — сваки канал подразумевано чува историју порука (до 2 минута или 100 порука на бесплатном плану). У плаћеним плановима историја се може повећати до 72 сата са могућношћу произвољног ретроспективног приступа. Историја се чува у дистрибуираном дневнику са гаранцијом непроменљивости (append-only).

ФункцијаБесплатни планEnterprise план
Истовремене везе10010.000+
Чување историје2 минута / 100 порука72 сата
Гаранција испорукеAt-least-onceExactly-once
Региони1 регионСвих 15+ региона
SLA99,9%99,999%

Гаранције испоруке Ably

Гаранције испоруке — кључна разлика Ably-ја од већине сервиса у реалном времену. Платформа подржава неколико режима испоруке који се бирају при објављивању поруке. Режим одређује колико пута ће порука бити испоручена и како се рукују грешке везе.

At-least-once — порука се испоручује најмање једном, могући су дупликати. Режим се користи за обавештења и некритичне податке где дупликати не наносе штету. Exactly-once — порука се испоручује строго једном захваљујући дедупликацији на страни клијента и сервера. Режим је обавезан за финансијске трансакције и управљање уређајима.

Last-value cache — посебан режим у ком канал чува последњу вредност сваке именоване поруке. Нови претплатник тренутно добија тренутно стање, не чекајући следећи догађај. Ово је имплементирано кроз глобалну key-value продавницу на сваком рутеру. Према документацији Ably (2025), last-value cache смањује време обнављања стања након поновног повезивања са 2–5 секунди на 50–100 ms.

Како користити Ably у пројекту

Почетак рада са Ably-јем захтева регистрацију, креирање апликације и добијање API кључа. Библиотеке су доступне за све главне платформе. Погледајмо пример објављивања и претплате коришћењем JavaScript SDK-а. Клијент се повезује са API кључем, претплаћује се на канал и приказује руковалац догађајима.

Према документацији Ably (2025), препоручује се коришћење различитих API кључева за серверски и клијентски део са минималним правима (принцип најмањих привилегија). Серверски кључ може објављивати у било којим каналима, клијентски — само се претплатити на одређене именске просторе.

Претплата на Ably канал

js
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('Примљено:', message.data);
});

channel.publish('update', {
    text: 'Hello from Ably',
    priority: 1
});

Објављивање са сервера

js
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('Порука објављена путем REST-а');
});

Ably vs Pusher: поређење

Избор између Ably и Pusher зависи од захтева пројекта. Обе платформе пружају хостовану инфраструктуру у реалном времену, али се разликују по архитектури, гаранцијама и ценама. Ably је намењен enterprise пројектима са високим захтевима за поузданошћу, Pusher — за брз почетак и једноставност.

Ably користи глобални дистрибуирани дневник за сваки канал, што обезбеђује exactly-once испоруку и ретроспективни приступ историји. Pusher користи брокерску архитектуру са at-least-once гаранцијом. За већину апликација разлика је неприметна, али за финансијске и медицинске системе exactly-once је критичан.

Према упоредном тесту Ably vs Pusher (2024), Ably показује 20–30% мање кашњење при међуконтиненталном преносу захваљујући већем броју центара података. Pusher побеђује у брзини интеграције — основно подешавање траје 10–15 минута наспрам 20–30 минута за Ably због већег броја опција конфигурације.

Мобилна интеграција Ably

Ably SDK за мобилне платформе подржава iOS (Swift), Android (Kotlin/Java), Flutter и React Native. Мобилни клијенти су потпуно компатибилни са серверским делом Ably и подржавају све функције: pub/sub, presence, history, push обавештења. За Android је доступна интеграција са Firebase Cloud Messaging-ом за офлајн доставу push обавештења.

Оптимизација за мобилне мреже — Ably SDK користи адаптивни heartbeat: на Wi-Fi интервал је 15 секунди, на мобилној мрежи — до 60 секунди ради уштеде саобраћаја. При губитку везе SDK прелази на резервни транспорт (HTTP streaming) без видљивог кашњења за корисника. Просечна потрошња саобраћаја — 0.5–1 KB у минути у режиму чекања.

Push обавештења — Ably подржава слање push-а путем APNs (Apple) и FCM (Firebase). Push се може усмерити на одређени канал или clientId. Ако је клијент активан (WebSocket повезан), порука се испоручује путем канала. Ако је клијент искључен, порука се испоручује као push обавештење. Ово гарантује да корисник никада неће пропустити важну поруку.

Често постављана питања

По чему се Ably разликује од Pusher-а?

Ably нуди exactly-once испоруку, глобални дистрибуирани дневник и 99,999% SLA. Pusher је једноставнији за подешавање, али пружа само at-least-once гаранције. Ably често бирају enterprise пројекти са високим захтевима за поузданошћу.

Колико кошта Ably?

Бесплатни план укључује 100 истовремених веза и 500.000 порука месечно. Плаћени планови почињу од $19/месец (1000 веза). Enterprise тариф са прилагођеним гаранцијама се договара индивидуално.

Да ли Ably подржава exactly-once испоруку?

Да, exactly-once — једна од кључних функција Ably-ја. Дедупликација се врши на страни платформе коришћењем јединствених идентификатора порука (message ID + connection ID).

Колико центара података има Ably?

Тренутно Ably има 15+ тачака присуства широм света, укључујући САД, Европу, Азију, Аустралију и Јужну Америку. Enterprise клијенти могу изабрати одређене регионе за чување података.

Може ли се Ably користити за IoT?

Да, Ably подржава MQTT протокол за IoT уређаје са малом потрошњом енергије. За уређаје на ESP32, Arduino и Raspberry Pi доступни су лагани SDK-ови са минималним коришћењем меморије.

Резиме

  • Ably — enterprise платформа за размену порука у реалном времену са глобалном мрежом од 15+ центара података и 99,999% SLA.
  • Pub/Sub модел је допуњен присуством, историјом порука и last-value cache-ом за тренутно обнављање стања.
  • Exactly-once испорука разликује Ably од конкурената и критична је за финансијске и медицинске апликације.
  • Мобилни SDK-ови подржавају push обавештења путем APNs и FCM, адаптивни heartbeat и аутоматски fallback транспорта.
  • Архитектура је изграђена на глобалном дистрибуираном дневнику и бинарном Ably протоколу преко WebSocket-а.
  • Enterprise функције укључују прилагођене SLA, VPC изолацију и регионална ограничења чувања података.
  • За пројекте са захтевима за exactly-once испоруку и глобални домет изаберите Ably, за једноставне сценарије довољан је Pusher.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође