1. Queue Tabanlı Sistemler
Queue tabanlı sistemler, yazılım bileşenleri arasında görevlerin sıralı olarak işlenmesini sağlayan geleneksel bir mesajlaşma yaklaşımıdır. Bu yapılar, üretici ve tüketici modeline dayanır: üretici (producer) bir mesaj oluşturur ve bu mesaj, bir kuyrukta sıraya alınır. Tüketici (consumer) ise bu mesajları sırasıyla okur ve işler. Bu model sayesinde işlem yükü ayrıştırılır, sistem bileşenleri birbirine doğrudan bağımlı olmaktan kurtulur ve özellikle yüksek yük altında bile sistemin parçaları birbirinden etkilenmeden çalışabilir. Sipariş işlemleri, e-posta gönderimleri, belge üretimleri gibi zaman alan işler için oldukça uygundur.
a. RabbitMQ
RabbitMQ, AMQP protokolüne dayalı, olgunlaşmış ve yaygın olarak kullanılan bir mesajlaşma sistemidir. Exchange > Queue > Consumer yapısı sayesinde esnek bir routing mekanizması sunar. Fanout, topic, direct ve headers tipinde exchange yapılarıyla farklı iş mantıkları uygulanabilir.
RabbitMQ Avantajları:
- Routing konusunda yüksek esneklik
- Mesaj süreleri (TTL), gecikmeli kuyruk, mesaj önceliği gibi zengin destek
- Web tabanlı yönetim paneli ile kolay izlenebilirlik
- Geniş dil desteği (Java, Python, Go, .NET vb.)
RabbitMQ Dezavantajları:
- Yüksek hacimli sistemlerde performans sınırlamaları olabilir
- Cluster yapısının kurulumu diğer sistemlere göre daha karmaşık
- Kalıcı veri saklama yönü zayıf; geçmiş veri sorgusu için uygun değildir .
RabbitMQ Ne Zaman Kullanılmalı?
Arka planda iş yükün dağıtılması, görevlerin kuyruklanması ve mikrosistemler arası haberleşme gibi klasik mesajlaşma senaryoları için uygundur.
RabbitMQ ile İlgili Mini Senaryo:
Bir e-ticaret sitesinde sipariş alındığında, RabbitMQ kuyruklarına ayrı ayrı fatura oluşturma, kargo bildirimi ve stok güncelleme mesajları gönderilir. But sayede işlemler bağımsız ve sıralı yürütülür.
b. AWS SQS
Amazon Simple Queue Service (SQS), AWS tarafından sunulan tam yönetilen bir mesajlaşma hizmetidir. Kuyruk mantığıyla çalışır ve geliştiricilere altyapı yönetimi gerektirmeden mesajlaşma kabiliyeti kazandırır.
AWS SQS Avantajları:
- Sunucusuz, bakım gerektirmeyen altyapı
- Yüksek erişilebilirlik, AWS servisleriyle derin entegrasyon
- FIFO kuyruğu ve dead-letter queue desteği
- Geniş ölçeklenebilirlik
AWS SQS Dezavantajları:
- Mesaj içerikleri görüntülenemez, yönetim sınırlı
- FIFO modda throughput düşer
- AWS dışı senaryolarda kullanımı sınırlı
Amazon Simple Queue Service Ne Zaman Kullanılmalı?
AWS içinde gelişen uygulamalarda, doğrudan Lambda, Step Functions gibi servislerle mesajlaşma gereksinimi varsa tercih edilmelidir.
AWS SQS ile İlgili Mini Senaryo:
Bir video platformunda kullanıcı video yüklediğinde SQS’e bir mesaj yazılır, bu mesajı okuyan arka plan işlemcisi videoyu dönüştürür ve indeksler.
2. Event Streaming Sistemleri
Event streaming sistemleri, sürekli üretilen verilerin (loglar, olaylar, kullanıcı etkileşimleri) gerçek zamanlı olarak toplanmasını, saklanmasını ve işlenmesini sağlar. Bu sistemler, verileri zaman sıralı bir şekilde depolar ve tüketicilerin bu verileri istedikleri noktadan başlayarak okumasına izin verir. Geleneksel kuyruklardan farklı olarak, mesaj bir kez tüketildikten sonra silinmez; veriler disk üzerinde bir süre tutulur. Bu sayede aynı veriyi farklı servisler farklı zamanlarda tekrar işleyebilir. Büyük veri mimarilerinde, log analitik sistemlerinde, event sourcing uygulamalarında ve gerçek zamanlı işleme gereksinimlerinde yaygın olarak kullanılır.

a. Apache Kafka Nedir?
Apache Kafka, dağıtık ve log tabanlı bir veri akış platformudur. Mesajlar topic adlı kategorilerde saklanır ve tüketiciler bu verileri istedikleri offset’ten okuyabilir. Veriler disk üzerinde belirli bir süre saklanabilir.
Apache Kafka Avantajları:
- Milyonlarca mesajı yüksek hızda işleyebilir
- Replay, offset kontrolü ve çoklu tüketici desteği
- Event sourcing ve stream processing uygulamalarına uygun
- Çoklu abone, farklı işlem hatları için idealdir
Apache Kafka Dezavantajları:
- Kurulum, yönetim ve optimizasyon açısından karmaşık
- Basit kuyruk senaryoları için ağır bir çözümdür
Apache Kafka Ne Zaman Kullanılmalı?
Gerçek zamanlı olay analitiği, event sourcing yapıları, log toplayıcı sistemler ve yüksek hacimli veri işleme ihtiyacında tercih edilmelidir.
Apache Kafka ile İlgili Mini Senaryo:
Bir haber sitesi tüm kullanıcı davranışlarını Kafka topic’lerine yazar. Bu olaylar aynı anda hem reklam motoru, hem tavsiye sistemi hem de raporlama sistemi tarafından bağımsız olarak işlenebilir.
b. Google Pub/Sub Nedir?
Google Cloud Pub/Sub, GCP üzerinde çalışan, tam yönetilen bir publish-subscribe sistemidir. Olaylar bir topic’e yayınlanır, abone olan servisler bu olayları kendi zamanlarında işler.
Google Pub/Sub Avantajları:
- Sunucusuz, otomatik ölçeklenir
- GCP servisleriyle doğrudan entegredir
- Fan-out senaryoları için çok uygundur
- Sıralı mesaj işleme desteği vardır (ordering key)
Google Pub/Sub Dezavantajları:
- Yalnızca Google Cloud ortamında kullanılabilir
- Mesaj saklama süreleri sınırlıdır
Google Pub/Sub Ne Zaman Kullanılmalı?
GCP üzerinde gelişen mikroservis yapılarında olay bazlı tetikleme ve çoklu hedefe veri yönlendirme senaryolarında tercih edilmelidir.
Google Pub/Sub ile İlgili Mini Senaryo:
Bir SaaS uygulamasında yeni bir müşteri kaydı Pub/Sub’a bildirilir. Bu olaya abone olan sistemler: e-posta doğrulama, CRM güncelleme ve kampanya servisi otomatik olarak tetiklenir.
3. Event Bus / Router Sistemleri
Event bus sistemleri, mikroservisler veya uygulama bileşenleri arasında olay tabanlı iletişim kurmak amacıyla geliştirilmiş yapılardır. Bu sistemler, bir olay meydana geldiğinde bu olayı “ilgili” hedef sistemlere yönlendirir. Burada önemli olan nokta, yönlendirme işleminin içerik veya kurallara göre dinamik olarak yapılabilmesidir. Üretici sistemin, olayın kim tarafından işleneceğini bilmesine gerek yoktur. Bu da sistemler arasında gevşek bağlılık (loose coupling) sağlar. Modern mikroservis mimarilerinde, SaaS entegrasyonlarında ve genişleyebilir uygulama kurgularında bu tür sistemler kritik rol oynar.

a. AWS EventBridge
EventBridge, AWS içindeki servislerden gelen olayları filtreleyip farklı hedeflere yönlendiren bir event bus hizmetidir. SaaS uygulamalardan gelen olayları da destekler.
AWS EventBridge Avantajları:
- AWS servisleriyle tam entegrasyon
- Kuralsal routing mantığı (JSON üzerinden)
- Minimum yönetim ihtiyacı
AWS EventBridge Dezavantajları:
- AWS dışı ortamlarda kullanımı sınırlı
- Mesaj saklama süreleri sınırlıdır (24 saat)
AWS EventBride Ne Zaman kullanılmalı?
AWS içerisindeki event-driven servis etkileşimi için, hızlı, bakımsız ve esnek bir yönlendirme katmanı olarak tercih edilmelidir.
Solace Event Mesh
Solace, protokol bağımsız çalışan, kurumsal seviyede gerçek zamanlı event mesh altyapısı sunar. Farklı ortamlar ve sistemler arasında olay bazlı entegrasyon sağlar.
Solace Event Mesh Avantajları:
- MQTT, AMQP, JMS gibi protokollerle çoklu destek
- Gerçek zamanlı veri aktarımı
- Hibrit bulut entegrasyonu
Solace Event Mesh Dezavantajları:
- Ticari lisans maliyeti
- Yönetim ve yapılandırma karmaşık olabilir
Solace Event Mesh Ne Zaman Kullanılmalı?
Kurumsal ortamlarda, hibrit sistemlerde, çoklu protokol ve coğrafi yayın gerektiren senaryolarda tercih edilir.
4. IoT ve Hafif Protokol Sistemleri
IoT dünyasında yer alan cihazlar genellikle düşük işlem gücüne, sınırlı bellek kaynaklarına ve dengesiz bağlantı koşullarına sahiptir. Bu nedenle klasik mesajlaşma protokolleri bu ortamlarda verimli çalışmaz. Hafif protokol tabanlı sistemler, özellikle az veri taşıyan, sık ama küçük mesajlar gönderen cihazlar arasında güvenli ve düşük bant genişliğiyle çalışan iletişim modelleri sunar. Sensör ağları, akıllı ev sistemleri, araç içi veri iletimi gibi senaryolarda yaygın şekilde kullanılmaktadır.

a. MQTT
MQTT (Message Queuing Telemetry Transport), publish-subscribe temelli, TCP üzerinden çalışan, ağır protokollere alternatif olarak geliştirilmiş bir mesajlaşma yapısıdır.
MQTT (Avantajları:
- Son derece hafif ve düşük bant genişliği tüketimi
- QoS seviyeleriyle teslimat kontrolü
- Uğursuz bağlantılara karşı tolerans
MQTT Dezavantajları:
- Mesaj saklama yoktur, anlık çalışır
- Güvenlik ve yetkilendirme dış servislere bırakılır
MQTT Ne Zaman Kullanılmalı?
IoT cihazları, sensörler ve mobil cihazlar arasında anlık, az verili ve düşük enerji tüketimli iletişim ihtiyacı varsa tercih edilir.
Alternatif: Redis
Her ne kadar Redis bir mesajlaşma sistemi olarak tasarlanmamış olsa da, basit mesaj kuyrukları veya geçici publish-subscribe ihtiyaçlarında kullanılabilecek alternatif mekanizmalar sunar. Redis’in bellek içi hızlı yapısı sayesinde küçük ölçekli senaryolarda zaman kazandırabilir. Ancak kalıcılık, mesaj garantisi, sıralama ve izlenebilirlik gibi konularda eksiklikleri bulunduğundan kritik sistemlerde yalnızca yardımcı araç olarak düşünülmelidir.
JMS Sistemleri
Java Message Service (JMS), Java tabanlı kurumsal uygulamalarda yaygın olarak kullanılan bir mesajlaşma API’sidir. JMS, hem kuyruk hem de publish-subscribe modellerini destekler. ActiveMQ ve IBM MQ gibi çözümler bu standardı uygular. Modern sistemlerde kullanımı azalmış olsa da, hâlâ çok sayıda legacy sistemde görev yapmaktadır. Özellikle Java tabanlı büyük kurumsal mimarilerde eski sistemlerle yeni teknolojilerin entegrasyonu sağlanırken JMS çözümleri önemli bir rol oynar.
Teknik Farklar Tablosu

Sonuç
Mesajlaşma sistemleri, modern uygulamaların omurgasını oluşturan ve bileşenler arasındaki iletişimi esnek, yüksek performanslı ve güvenli bir şekilde yönetmeyi sağlayan altyapılardır. Her sistemin çözüm sunduğu problem alanı farklıdır: kimisi veri hacmi büyüdükçe parlamaya başlar, kimisi sistemleri birbirinden ayırarak yönetimi kolaylaştırır, kimisi ise sınırlı cihazlarda bile güvenilir iletişimi mümkün kılar.
Bu yazıda ele aldığımız RabbitMQ, Kafka, Google Pub/Sub, MQTT gibi sistemlerin her biri farklı ihtiyaçlara yanıt verir. Kimi zaman bir arka plan görevi yönetmek için basit bir kuyruk sistemi yeterli olurken, kimi zaman da milyonlarca olayı eş zamanlı olarak işlemek için karmaşık ve dağıtık bir log altyapısına ihtiyaç duyulur.
Yazı boyunca ele alınan sistemler, MIP platformunda farklı ihtiyaçlara yönelik olarak uygulanmış gerçek projelerden süzülen deneyimlerle desteklenmiştir. Burada sunulan değerlendirmeler ve öneriler, sizin için en uygun mesajlaşma altyapısını seçerken sağlam bir referans olabilir.
Mesajlaşma altyapısı için MIP hakkında daha fazla bilgi için bizimle iletişime geçebilirsiniz.