Ably — cloudová platforma pro zasílání zpráv v reálném čase, která poskytuje infrastrukturu pro pub/sub komunikaci, přítomnost a synchronizaci stavu. Je určena pro enterprise projekty s vysokými nároky na spolehlivost a globální dostupnost. Podle oficiální dokumentace Ably (2025), platforma garantuje 99,999% dostupnost a zpoždění doručení méně než 65 ms v 95. percentilu.
Hlavní body
Ably — cloudová platforma v reálném čase založená v roce 2014, která poskytuje infrastrukturu pro výměnu zpráv v reálném čase. Na rozdíl od jednoduchých pub služeb nabízí Ably podnikové záruky doručení, globální síť přístupových bodů (POP) a vestavěnou synchronizaci stavu pro miliony současných klientů.
Platforma se používá v projektech, kde je spolehlivost doručení kritická: finanční tickery, logistické trackery, lékařské monitorovací systémy a multiplayerové hry. Ably je založen na vlastní technologii distribuovaného brokera zpráv, který replikuje data prostřednictvím globální sítě 15+ datových center.
Podle oficiálního webu Ably (2025), platforma zpracovává více než 200 miliard zpráv měsíčně pro 50 000+ aktivních aplikací. Mezi klienty patří společnosti z žebříčku Fortune 500: Toyota (automobilová telematika), HubSpot (synchronizace CRM), Designity (společné úpravy).
Architektura Ably je postavena na distribuované síti brokerů zpráv (routerů) propojených vysokorychlostními kanály. Každý broker obsluhuje podmnožinu kanálů a replikuje stav pomocí Ably protokolu — binárního protokolu přes WebSocket optimalizovaného pro minimální režii. Klienti se připojují k nejbližšímu brokeru prostřednictvím DNS load balancingu.
Klíčovým rozdílem Ably od konkurence je vestavěný globální log (global log), který ukládá historii zpráv pro každý kanál. To umožňuje novým odběratelům přijímat nejen nové, ale i předchozí zprávy (replay), což je kritické pro audit a obnovení stavu po opětovném připojení.
Model interakce Ably následuje vzor Publisher-Subscriber s dalšími možnostmi. Vydavatel odešle zprávu do kanálu prostřednictvím REST API nebo SDK Ably. Zpráva vstoupí do globálního distribuovaného logu kanálu a je rozeslána všem odběratelům prostřednictvím jejich aktivních připojení.
Transportní vrstva Ably podporuje několik protokolů: WebSocket (hlavní, s binárním Ably protokolem), Server-Sent Events (pro jednosměrný příjem), HTTP streaming (pro omezená prostředí) a MQTT (pro IoT zařízení). Klient automaticky vybírá dostupný transport s nejnižší latencí.
Každá zpráva prochází validací na straně Ably — kontrola podpisu API klíče, kvóty kanálu, přístupových práv. Validace probíhá za 1–5 ms na okrajovém routeru, poté je zpráva replikována do globálního logu. Podle technického blogu Ably (2024), end-to-end latence je nižší než 65 ms pro 95 % zpráv při mezikontinentálním přenosu.
Kanály Ably — pojmenovaná témata pro výměnu zpráv. Každý kanál může mít neomezený počet odběratelů, ale pro stabilní výkon se doporučuje nejvýše 10 000 na kanál v rámci jedné zóny. Kanály mohou být jednosměrné (publikace pouze ze serveru) nebo plné (klienti publikují zprávy).
Model Pub/Sub v Ably rozšiřuje klasický vzor o další možnosti: přítomnost odběratelů (presence), historii zpráv (history), stav kanálu (channel state) a jmenné prostory (namespaces). Každý kanál patří do jmenného prostoru, který určuje kvóty a přístupová práva.
Přítomnost (Presence) — automatické sledování účastníků kanálu. Každý klient, který se přihlásí k odběru kanálu, se zaregistruje v mapě přítomnosti s clientId, stavem (online, away, offline) a libovolnými daty. Při odpojení klienta (časovým limitem nebo explicitně) se přítomnost automaticky aktualizuje.
Historie zpráv — každý kanál standardně uchovává historii zpráv (až 2 minuty nebo 100 zpráv v bezplatném plánu). V placených plánech lze historii prodloužit až na 72 hodin s možností libovolného retrospektivního přístupu. Historie je uložena v distribuovaném logu s garancí neměnnosti (append-only).
| Funkce | Bezplatný plán | Enterprise plán |
|---|---|---|
| Současná připojení | 100 | 10 000+ |
| Ukládání historie | 2 minuty / 100 zpráv | 72 hodin |
| Záruka doručení | At-least-once | Exactly-once |
| Regiony | 1 region | Všech 15+ regionů |
| SLA | 99,9% | 99,999% |
Záruky doručení — klíčový rozdíl Ably od většiny služeb v reálném čase. Platforma podporuje několik režimů doručení volitelných při publikování zprávy. Režim určuje, kolikrát bude zpráva doručena a jak jsou zpracovávány chyby připojení.
At-least-once — zpráva je doručena alespoň jednou, jsou možné duplikáty. Režim se používá pro oznámení a nekritická data, kde duplikáty nezpůsobují škodu. Exactly-once — zpráva je doručena přesně jednou díky deduplikaci na straně klienta a serveru. Režim je povinný pro finanční transakce a správu zařízení.
Last-value cache — speciální režim, při kterém kanál uchovává poslední hodnotu každé pojmenované zprávy. Nový odběratel okamžitě obdrží aktuální stav, aniž by čekal na další událost. To je implementováno prostřednictvím globálního úložiště key-value na každém routeru. Podle dokumentace Ably (2025), last-value cache zkracuje dobu obnovení stavu po opětovném připojení z 2–5 sekund na 50–100 ms.
Začátek práce s Ably vyžaduje registraci, vytvoření aplikace a získání API klíče. Knihovny jsou k dispozici pro všechny hlavní platformy. Podívejme se na příklad publikace a odběru pomocí JavaScript SDK. Klient se připojí s API klíčem, přihlásí se k odběru kanálu a připojí obsluhu události.
Podle dokumentace Ably (2025) se doporučuje používat různé API klíče pro serverovou a klientskou část s minimálními právy (princip nejmenších oprávnění). Serverový klíč může publikovat v libovolných kanálech, klientský klíč — může se pouze přihlásit k odběru určitých jmenných prostorů.
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('Přijato:', 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('Zpráva publikována přes REST');
});
Výběr mezi Ably a Pusher závisí na požadavcích projektu. Obě platformy poskytují hostovanou infrastrukturu v reálném čase, ale liší se architekturou, zárukami a cenami. Ably je určen pro enterprise s vysokými nároky na spolehlivost, Pusher — pro rychlý start a jednoduchost.
Ably používá globální distribuovaný log pro každý kanál, což zajišťuje exactly-once doručení a retrospektivní přístup k historii. Pusher používá brokerskou architekturu se zárukou at-least-once. Pro většinu aplikací je rozdíl nepostřehnutelný, ale pro finanční a lékařské systémy je exactly-once kritické.
Podle srovnávacího testu Ably vs Pusher (2024), Ably vykazuje o 20–30 % nižší latenci při mezikontinentálním přenosu díky většímu počtu datových center. Pusher vítězí v rychlosti integrace — základní nastavení trvá 10–15 minut oproti 20–30 minutám pro Ably kvůli většímu počtu konfiguračních možností.
Ably SDK pro mobilní platformy podporuje iOS (Swift), Android (Kotlin/Java), Flutter a React Native. Mobilní klienti jsou plně kompatibilní se serverovou částí Ably a podporují všechny funkce: pub/sub, presence, history, push notifikace. Pro Android je k dispozici integrace s Firebase Cloud Messaging pro offline doručování push notifikací.
Optimalizace pro mobilní sítě — Ably SDK používá adaptivní heartbeat: na Wi-Fi je interval 15 sekund, na mobilní síti — až 60 sekund pro úsporu provozu. Při ztrátě připojení SDK přepne na záložní transport (HTTP streaming) bez viditelného zpoždění pro uživatele. Průměrná spotřeba provozu — 0,5–1 KB za minutu v pohotovostním režimu.
Push notifikace — Ably podporuje odesílání push přes APNs (Apple) a FCM (Firebase). Push lze směrovat na konkrétní kanál nebo clientId. Pokud je klient aktivní (WebSocket připojen), zpráva je doručena prostřednictvím kanálu. Pokud je klient odpojen, zpráva je doručena jako push notifikace. To zaručuje, že uživatel nikdy nezmešká důležitou zprávu.
Často kladené otázky
Ably nabízí exactly-once doručení, globální distribuovaný log a 99,999% SLA. Pusher je jednodušší na nastavení, ale poskytuje pouze at-least-once záruky. Ably je často volen enterprise projekty s vysokými nároky na spolehlivost.
Bezplatný plán zahrnuje 100 současných připojení a 500 000 zpráv měsíčně. Placené plány začínají od $19/měsíc (1000 připojení). Enterprise tarif s vlastními zárukami je projednáván individuálně.
Ano, exactly-once — jedna z klíčových funkcí Ably. Deduplikace se provádí na straně platformy pomocí jedinečných identifikátorů zpráv (message ID + connection ID).
V současné době má Ably 15+ přístupových bodů po celém světě, včetně USA, Evropy, Asie, Austrálie a Jižní Ameriky. Enterprise klienti mohou vybrat konkrétní regiony pro ukládání dat.
Ano, Ably podporuje protokol MQTT pro IoT zařízení s nízkou spotřebou energie. Pro zařízení ESP32, Arduino a Raspberry Pi jsou k dispozici lehké SDK s minimální spotřebou paměti.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také