Ably, pub/sub iletişimi, bulunurluk ve durum senkronizasyonu için altyapı sağlayan bulut tabanlı gerçek zamanlı mesajlaşma platformudur. Yüksek güvenilirlik ve küresel erişilebilirlik gerektiren kurumsal projeler için tasarlanmıştır. resmi Ably dokümantasyonuna (2025) göre, platform %99.999 çalışma süresi ve 95. persentilde 65 ms'nin altında teslimat gecikmesi garanti eder.
Önemli Noktalar
Ably, 2014 yılında kurulmuş, gerçek zamanlı mesajlaşma için altyapı sağlayan bulut tabanlı bir platformdur. Basit pub hizmetlerinin aksine, Ably kurumsal düzeyde teslimat garantileri, küresel bir varlık noktası (POP) ağı ve milyonlarca eşzamanlı istemci için yerleşik durum senkronizasyonu sunar.
Platform, teslimat güvenilirliğinin kritik olduğu projelerde kullanılır: finansal ticker'lar, lojistik takipçileri, tıbbi izleme sistemleri ve çok oyunculu oyunlar. Ably, 15+ veri merkezinden oluşan küresel bir ağ üzerinde verileri çoğaltan kendi dağıtık mesaj broker teknolojisine dayanır.
Resmi Ably web sitesine (2025) göre, platform 50.000+ aktif uygulama için ayda 200 milyardan fazla mesaj işler. Müşteriler arasında Fortune 500 şirketleri bulunur: Toyota (araç telematiği), HubSpot (CRM senkronizasyonu), Designity (işbirlikçi düzenleme).
Ably mimarisi, yüksek hızlı kanallarla bağlanan dağıtık mesaj brokerleri (yönlendiriciler) ağı üzerine kurulmuştur. Her broker, kanalların bir alt kümesine hizmet eder ve durumu Ably Protokolü — minimum ek yük için optimize edilmiş WebSocket üzerinden ikili protokol — kullanarak çoğaltır. İstemciler, DNS yük dengeleme yoluyla en yakın broker'a bağlanır.
Ably'yi rakiplerinden ayıran temel fark, her kanalın mesaj geçmişini depolayan yerleşik küresel günlüktür. Bu, yeni abonelerin yalnızca yeni mesajları değil, önceki mesajları da almasını sağlar (tekrar oynatma), bu da denetim ve yeniden bağlantı sonrası durum kurtarma için kritiktir.
Ably etkileşim modeli, ek yeteneklerle Yayıncı-Abone desenini izler. Yayıncı, Ably REST API veya SDK aracılığıyla bir kanala mesaj gönderir. Mesaj, kanalın küresel dağıtık günlüğüne girer ve tüm abonelere aktif bağlantıları aracılığıyla dağıtılır.
Taşıma katmanı — Ably birden çok protokolü destekler: WebSocket (birincil, ikili Ably Protokolü ile), Server-Sent Events (tek yönlü alım için), HTTP streaming (kısıtlı ortamlar için) ve MQTT (IoT cihazları için). İstemci, en düşük gecikmeye sahip mevcut taşımayı otomatik olarak seçer.
Her mesaj, Ably tarafında bir doğrulamadan geçer — API anahtarı imza doğrulaması, kanal kotası kontrolü, erişim hakları. Doğrulama, uç yönlendiricide 1–5 ms içinde gerçekleşir, ardından mesaj küresel günlüğe çoğaltılır. Ably teknik bloguna (2024) göre, kıtalararası iletim sırasında mesajların %95'i için uçtan uca gecikme 65 ms'nin altındadır.
Ably kanalları, mesaj alışverişi için adlandırılmış konulardır. Her kanalın sınırsız sayıda abonesi olabilir, ancak kararlı performans için bir bölge içinde kanal başına 10.000'i aşmamak önerilir. Kanallar tek yönlü (yalnızca sunucudan yayın) veya tam çift yönlü (istemciler mesaj yayınlar) olabilir.
Ably'de Pub/Sub modeli, klasik deseni ek yeteneklerle genişletir: abone bulunurluğu, mesaj geçmişi, kanal durumu ve ad alanları. Her kanal, kotaları ve erişim haklarını tanımlayan bir ad alanına aittir.
Bulunurluk — kanal katılımcılarının otomatik takibi. Bir kanala abone olan her istemci, clientId, durum (çevrimiçi, uzakta, çevrimdışı) ve rastgele verilerle bulunurluk haritasına kaydedilir. Bir istemcinin bağlantısı kesildiğinde (zaman aşımı veya açıkça), bulunurluk otomatik olarak güncellenir.
Mesaj geçmişi — her kanal varsayılan olarak mesaj geçmişini depolar (ücretsiz planda 2 dakika veya 100 mesaja kadar). Ücretli planlarda, geçmiş, isteğe bağlı geriye dönük erişimle 72 saate kadar uzatılabilir. Geçmiş, değişmezlik garantileriyle (yalnızca ekleme) dağıtık bir günlükte saklanır.
| Özellik | Ücretsiz plan | Kurumsal plan |
|---|---|---|
| Eşzamanlı bağlantılar | 100 | 10.000+ |
| Geçmiş saklama | 2 dakika / 100 mesaj | 72 saat |
| Teslimat garantisi | At-least-once | Exactly-once |
| Bölgeler | 1 bölge | Tüm 15+ bölge |
| SLA | %99.9 | %99.999 |
Teslimat garantileri, Ably'yi çoğu gerçek zamanlı hizmetten ayıran temel farktır. Platform, bir mesaj yayınlanırken seçilebilen birden çok teslimat modunu destekler. Mod, bir mesajın kaç kez teslim edileceğini ve bağlantı hatalarının nasıl ele alınacağını belirler.
At-least-once — mesaj en az bir kez teslim edilir, kopyalar mümkündür. Bu mod, kopyaların zarar vermediği bildirimler ve kritik olmayan veriler için kullanılır. Exactly-once — istemci ve sunucu tarafında yinelenenleri kaldırma yoluyla mesaj tam olarak bir kez teslim edilir. Bu mod, finansal işlemler ve cihaz yönetimi için zorunludur.
Last-value cache — kanalın her adlandırılmış mesajın son değerini sakladığı özel bir moddur. Yeni bir abone, bir sonraki olayı beklemeden anında mevcut durumu alır. Bu, her yönlendiricide küresel bir anahtar-değer deposu aracılığıyla uygulanır. Ably dokümantasyonuna (2025) göre, last-value cache, yeniden bağlantı sonrası durum kurtarma süresini 2–5 saniyeden 50–100 ms'ye düşürür.
Ably'ye başlamak kayıt, bir uygulama oluşturma ve bir API anahtarı alma gerektirir. Kütüphaneler tüm büyük platformlar için mevcuttur. JavaScript SDK kullanarak yayınlama ve abonelik örneğine bakalım. İstemci bir API anahtarıyla bağlanır, bir kanala abone olur ve bir olay işleyicisi ekler.
Ably dokümantasyonuna (2025) göre, minimum izinlerle (en az ayrıcalık ilkesi) sunucu ve istemci tarafı için farklı API anahtarları kullanılması önerilir. Sunucu anahtarı herhangi bir kanala yayın yapabilirken, istemci anahtarı yalnızca belirli ad alanlarına abone olabilir.
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');
});
Ably ve Pusher arasında seçim proje gereksinimlerine bağlıdır. Her iki platform da barındırılan gerçek zamanlı altyapı sağlar, ancak mimari, garantiler ve fiyatlandırma açısından farklılık gösterir. Ably, yüksek güvenilirlik gereksinimleri olan kurumlara odaklanırken, Pusher hızlı başlangıç ve basitliğe odaklanır.
Ably, her kanal için küresel dağıtık günlük kullanır, bu da exactly-once teslimat ve geçmişe geriye dönük erişim sağlar. Pusher, at-least-once garantileriyle broker mimarisi kullanır. Çoğu uygulama için fark fark edilmez, ancak finansal ve tıbbi sistemler için exactly-once kritiktir.
Ably vs Pusher karşılaştırma testine (2024) göre, Ably daha fazla sayıda veri merkezi sayesinde kıtalararası iletimde %20–30 daha düşük gecikme gösterir. Pusher, entegrasyon hızında öndedir — temel kurulum 10–15 dakika sürerken, daha fazla yapılandırma seçeneği nedeniyle Ably için 20–30 dakika sürer.
Mobil platformlar için Ably SDK, iOS (Swift), Android (Kotlin/Java), Flutter ve React Native'i destekler. Mobil istemciler, Ably sunucu tarafıyla tamamen uyumludur ve tüm özellikleri destekler: pub/sub, bulunurluk, geçmiş, push bildirimleri. Android için, çevrimdışı push bildirimi teslimatı için Firebase Cloud Messaging ile entegrasyon mevcuttur.
Mobil ağlar için optimizasyon — Ably SDK uyarlanabilir kalp atışı kullanır: Wi-Fi'da aralık 15 saniyedir, mobil ağlarda trafikten tasarruf etmek için 60 saniyeye kadar çıkar. Bağlantı kaybında SDK, kullanıcı için görünür bir gecikme olmadan yedek taşıyıcıya (HTTP streaming) geçer. Bekleme modunda ortalama trafik tüketimi dakikada 0.5–1 KB'dir.
Push bildirimleri — Ably, APNs (Apple) ve FCM (Firebase) aracılığıyla push gönderimini destekler. Push, belirli bir kanala veya clientId'ye yönlendirilebilir. İstemci aktifse (WebSocket bağlı), mesaj kanal aracılığıyla teslim edilir. İstemcinin bağlantısı kesilmişse, mesaj push bildirimi olarak teslim edilir. Bu, kullanıcının önemli bir mesajı asla kaçırmamasını sağlar.
Sıkça Sorulan Sorular
Ably, exactly-once teslimat, küresel dağıtık günlük ve %99.999 SLA sunar. Pusher kurulumu daha basittir ancak yalnızca at-least-once garantileri sağlar. Ably genellikle yüksek güvenilirlik gereksinimleri olan kurumsal projeler tarafından seçilir.
Ücretsiz plan 100 eşzamanlı bağlantı ve ayda 500.000 mesaj içerir. Ücretli planlar aylık $19'dan (1000 bağlantı) başlar. Özel garantili kurumsal fiyatlandırma bireysel olarak görüşülür.
Evet, exactly-once Ably'nin temel özelliklerinden biridir. Yinelenenleri kaldırma, benzersiz mesaj tanımlayıcıları (message ID + connection ID) kullanılarak platform tarafında gerçekleştirilir.
Şu anda Ably'nin dünya çapında 15'ten fazla varlık noktası bulunmaktadır: ABD, Avrupa, Asya, Avustralya ve Güney Amerika dahil. Kurumsal müşteriler, veri depolama için belirli bölgeler seçebilir.
Evet, Ably, düşük güç tüketimli IoT cihazları için MQTT protokolünü destekler. ESP32, Arduino ve Raspberry Pi çalıştıran cihazlar için minimum bellek kullanımına sahip hafif SDK'lar mevcuttur.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun