RabbitMQ, Apache Kafka ve Apache Pulsar Karşılaştırması

RabbitMQ, Apache Kafka ve Apache Pulsar Karşılaştırması

İçindekiler

  1. Giriş
  2. RabbitMQ
    1. RabbitMQ Nasıl Çalışır?
    2. RabbitMQ’nun Artıları
    3. RabbitMQ’nun Eksileri
    4. RabbitMQ Ne Zaman Kullanılmalı?
    5. RabbitMQ Ne Zaman Kullanılmamalı?
  3. Apache Kafka
    1. Apache Kafka Nasıl Çalışır?
    2. Apache Kafka’nun Artıları
    3. Apache Kafka’nun Eksileri
    4. Apache Kafka Ne Zaman Kullanılmalı?
    5. Apache Kafka Ne Zaman Kullanılmamalı?
  4. Apache Pulsar
    1. Apache Pulsar Nasıl Çalışır?
    2. Apache Pulsar’nun Artıları
    3. Apache Pulsar’nun Eksileri
    4. Apache Pulsar Ne Zaman Kullanılmalı?
    5. Apache Pulsar Ne Zaman Kullanılmamalı?
  5. Sonuç
  6. Kaynakça

Giriş

Modern yazılım mimarileri, özellikle mikroservisler ve dağıtık sistemlerin yaygınlaşmasıyla birlikte, birçok avantaj sunarken yeni zorlukları da beraberinde getiriyor. Karşılaşılabilecek zorlukların başında, farklı bileşenler arasındaki iletişim sorunları geliyor. Doğrudan iletişim kuran servisler, birbirine sıkı bir şekilde bağımlı hâle geliyor ve bu durum, sistemlerin ölçeklenebilirliğini zorlaştırıyor, hata toleransını düşürüyor ve karmaşıklığı artırıyor.

İşte tam bu noktada message queue (mesaj kuyruğu) ve message broker (mesaj yöneticisi) teknolojileri devreye giriyor. Bu teknolojiler, servisler arasındaki iletişimi asenkron (eş zamansız) ve bağımsız bir şekilde yöneterek, mesajların güvenilir bir şekilde iletilmesini ve işlemlerin sıralı olarak gerçekleştirilmesini sağlıyor. Böylece sistemler daha esnek, dayanıklı ve ölçeklenebilir hâle geliyor. Örneğin, bir e-ticaret platformunda sipariş işleme sürecinde ödeme, stok güncelleme, fatura oluşturma ve kargo hazırlama gibi adımlar, mesaj kuyruğu kullanılarak birbirinden bağımsız hâle getirilir. Bu sayede, bir servis arızasında tüm sistemin çökmesini engeller ve sadece ilgili adımın etkilenmesini sağlar. Benzer şekilde, toplu e-posta gönderiminde mesaj kuyruğu kullanımı, yoğun trafiği yönetir ve hata durumunda mesaj kaybını önleyerek kullanıcıya kesintisiz bir deneyim sunar.

RabbitMQ, Apache Kafka ve Apache Pulsar gibi popüler araçlar, bahsedilen gereksinimleri karşılamak için modern yazılım projelerinde sıklıkla tercih ediliyor. Yazımızda, bu üç aracın temel özelliklerini inceleyip birbirlerine göre avantaj ve dezavantajlarına bakacağız.

RabbitMQ

RabbitMQ, hafif, esnek ve güvenilir bir mesaj kuyruğu sistemi olarak öne çıkmaktadır. Özellikle orta ölçekli sistemler ve mikroservis mimarileri için yaygın olarak kullanılmaktadır. Düşük kurulum ve yönetim maliyetleri, kullanım kolaylığı ve geniş dil desteği sayesinde, geliştiriciler arasında oldukça popülerdir. RabbitMQ, mesajların sıralı ve güvenilir bir şekilde iletilmesini sağlarken, eş zamanlı işlemleri yönetmek için güçlü bir yapı sunar [2].

Kafka ve Pulsar gibi sistemlerle kıyaslandığında, RabbitMQ daha basit ve anlaşılır bir mimariye sahiptir. Bu durum, özellikle hızlı prototipleme ve orta ölçekli projeler için büyük bir avantajdır. Ancak multi-region (çok bölgeli) senkronizasyon ve büyük ölçekli veri akışı gibi karmaşık gereksinimlerde Kafka ve Pulsar kadar güçlü olmayabilir. Buna rağmen RabbitMQ, güvenilir mesaj teslimi, eklenti desteği ve genişletilebilir yapısıyla, özellikle basit ve orta ölçekli sistemler için hâlâ en tercih edilen mesajlaşma çözümlerinden biridir [3].

RabbitMQ Nasıl Çalışır?

RabbitMQ’nun temel işleyişi, üretici (producer), kuyruk (queue) ve tüketici (consumer) etrafında şekillenir. İşleyişi aşağıdaki gibi özetlenebilir:

  • Producer
    • Producer, bir mesajı RabbitMQ’ya gönderir. Ancak mesaj doğrudan kuyruğa değil, önce bir değişim noktası (exchange) üzerinden geçer.
    • Exchange, gelen mesajları belirli kurallara göre bir veya birden fazla kuyruğa yönlendirir.
  • Exchange Türleri
    • Exchange, mesajların kuyruklara nasıl yönlendirileceğini belirler. RabbitMQ’da dört temel exchange türü vardır:
      • Doğrudan Değişim (Direct Exchange): Mesajlar belirli bir routing key (yönlendirme anahtarı) ile doğrudan bir kuyruğa gider.
      • Yayın Değişimi (Fanout Exchange): Mesaj, bağlı tüm kuyruklara iletilir.
      • Konu Değişimi (Topic Exchange): Routing key’e dayalı olarak wildcard’larla eşleşen kuyruklara mesaj gönderir.
      • Başlık Değişimi (Headers Exchange): Mesaj başlıklarındaki değerlere göre yönlendirme yapılır.
    • Exchange yapısının görsel özetini Şekil 1’de görebilirsiniz.
  • Queue
    • Mesajlar, RabbitMQ üzerinde kuyruklarda saklanır. Her kuyruk bir isimle tanımlanır ve mesajlar sırayla tüketilir.
    • RabbitMQ, kuyruklar arasında mesajları eş zamanlı veya gecikmeli olarak taşımayı destekler.
  • Consumer
    • Tüketiciler, belirli bir kuyruğu dinleyerek mesajları alır ve işler.
    • RabbitMQ, mesajların birden fazla tüketici arasında iş yükü paylaşımı yapılmasına olanak tanır.
  • Acknowledgement
    • RabbitMQ, bir mesajın tüketici tarafından başarılı bir şekilde işlendiğini doğrular. Eğer mesaj işlenmezse (örneğin, tüketici çökerse), mesaj yeniden kuyruğa alınır.


Şekil 1. RabbitMQ Exchange Yapısı


Şekil 1. RabbitMQ Exchange Yapısı [1]

RabbitMQ’nun Artıları

RabbitMQ, kullanım kolaylığı ve esneklik sağlayan bir mesaj kuyruğu sistemidir. Web tabanlı yönetim paneli, yöneticilerin kuyrukları, tüketicileri ve mesaj trafiğini kolayca izlemesine olanak tanır. AMQP, HTTP, MQTT ve STOMP gibi birçok mesajlaşma protokolünü desteklediğinden, farklı sistemlerle entegrasyonu oldukça kolaydır.

Exchange mekanizması, mesajların yönlendirilmesini esnek hâle getirir ve mesaj doğrulama, yeniden kuyruğa alma (requeue) gibi özellikleri sayesinde güvenilir mesaj iletimi sunar. Ayrıca, düşük kaynak gereksinimi ile küçük ve orta ölçekli sistemlerde verimli bir şekilde çalışabilir.

RabbitMQ’nun Eksileri

RabbitMQ, yüksek veri akışı gerektiren sistemlerde Kafka kadar performanslı olmayabilir. Mesajları genellikle bellekte tuttuğu için büyük hacimli mesajlar işlendiğinde performans sorunları ortaya çıkabilir. Büyük ölçekli sistemlerde, kuyruğa alma ve yönlendirme mekanizmaları zamanla daha karmaşık hâle gelebilir.

Bunun yanı sıra, Kafka’nın aksine tüketicilerin geçmiş mesajları geriye dönük okumasını desteklemez. Bu da RabbitMQ’yu streaming (akış işleme) veya büyük veri uygulamaları için daha az uygun hâle getirir.

RabbitMQ Ne Zaman Kullanılmalı?

  • Küçük ve orta ölçekli mesajlaşma sistemleri için ideal bir çözümdür.
  • Web tabanlı yönetim paneli ile kolay yönetim gerektiren sistemlerde tercih edilebilir.
  • Farklı protokolleri desteklediği için, HTTP, MQTT, AMQP gibi protokoller arası entegrasyon gereken senaryolarda kullanılabilir.
  • Mikro hizmetler arası asenkron iletişim için uygundur.

RabbitMQ Ne Zaman Kullanılmamalı?

  • Gerçek zamanlı, yüksek hacimli veri akışı (streaming) işleme gerektiren sistemlerde Kafka veya Pulsar daha iyi bir alternatif olabilir.
  • Geçmiş mesajlara erişim gerektiren sistemlerde Kafka daha uygun olabilir.
  • Büyük ölçekli ve yüksek hacimli mesaj trafiği olan sistemlerde, RabbitMQ’nun performans limitleri nedeniyle Kafka daha avantajlı olabilir.

Bu bilgiler ışığında, RabbitMQ küçük ve orta ölçekli mesajlaşma sistemleri için esnek, hafif ve kolay yönetilebilir bir çözüm sunarken, büyük ölçekli veri akışı ve geçmiş mesaj erişimi gerektiren senaryolarda Kafka veya Apache Pulsar daha iyi bir seçim olabilir.

Apache Kafka

Apache Kafka, LinkedIn tarafından geliştirilmiş ve Apache Software Foundation tarafından açık kaynak olarak yönetilen, yüksek performanslı bir veri akışı (streaming) platformudur. Dağıtık mimarisi sayesinde hataya dayanıklı, yatay olarak ölçeklenebilir ve düşük gecikme ile büyük miktarda veriyi işlemesi mümkündür. Kafka, özellikle gerçek zamanlı veri iletimi gerektiren sistemlerde kullanılır ve mikroservisler, log analitiği, olay bazlı mimariler ve büyük veri sistemleri için ideal bir çözümdür [4].

Apache Kafka Nasıl Çalışır?

Kafka, verileri topics adı verilen kategoriler altında saklar. Her topic, birden fazla partition (bölüm) içerebilir ve bu partition’lar verilerin paralel olarak işlenmesini sağlar. Kafka, verileri disk üzerinde saklayarak olay bazlı sistemlerde geçmiş verilere erişimi mümkün kılar. Verilerin sırası offset ile takip edilir ve Kafka, belirli bir süre boyunca verileri sakladıktan sonra (varsayılan olarak 1 hafta) eski mesajları siler.

Kafka’daki bileşenler üç ana gruba ayrılır: Producers (Üreticiler), Brokers (Aracılar) ve Consumers (Tüketiciler).

  • Producers
    • Kafka’ya mesaj gönderir. Eğer mesaj belirli bir anahtar (key) ile gönderilirse, Kafka bu mesajı aynı partition’a yönlendirir. Anahtar belirtilmezse, mesajlar round-robin yöntemiyle farklı partition’lara dağıtılır.
  • Brokers
    • Kafka sunucularıdır ve dağıtık yapı sayesinde birden fazla broker bir araya gelerek Kafka cluster’ını (Kafka kümesi) oluşturur. Replication mekanizması ile veriler birden fazla broker’da saklanarak veri kaybı önlenir.
  • Consumers
    • Kafka’dan mesajları okur ve işler. Tüketiciler consumer groups (tüketici gruplar) adı verilen gruplara ayrılabilir ve her consumer group içindeki bir partition yalnızca bir tüketici tarafından okunur, böylece yüksek performanslı paralel veri işleme sağlanır.

Kafka’da, Zookeeper kullanarak cluster yönetimi yapılıyordu ancak yeni KRaft (Kafka Raft) yapısı ile Zookeeper bağımlılığı kaldırılmıştır. KRaft, Kafka’nın kendi içinde metadata yönetimi yapmasına olanak tanıyarak daha hızlı lider seçimi ve daha düşük operasyonel karmaşıklık sağlamaktadır.

Apache Kafka’nın Artıları

  • Yüksek İşlem Kapasitesi: Kafka, saniyede milyonlarca mesajı işleyebilir.
  • Düşük Gecikme: 10 ms’den (milisaniye) az gecikme süresiyle gerçek zamanlı veri aktarımı yapar.
  • Dağıtık ve Ölçeklenebilir Mimari: Yatay olarak ölçeklenebilir ve büyük veri sistemleri için uygundur.
  • Persistency (Kalıcı Depolama): Kafka, mesajları disk üzerinde saklayarak geçmiş verileri erişilebilir kılar.
  • Event-Driven (Olay Tabanlı) Mimariler İçin Uygun: Mikroservisler ve gerçek zamanlı analiz platformlarında güçlüdür.
  • Replikasyon ve Hata Toleransı: Veriler birden fazla broker’da saklanarak sistemin dayanıklılığı artırılır.

Apache Kafka’nın Eksileri

  • Düşük Gecikme Gerektiren Sistemler İçin Uygun Değil: Kafka, mesajları disk üzerinde sakladığı için RabbitMQ gibi hafif mesajlaşma sistemlerine göre daha yüksek gecikmeye sahiptir.
  • Yüksek Depolama Maliyeti: Büyük miktarda veriyi disk üzerinde saklamak yüksek depolama gereksinimi oluşturabilir.
  • Karmaşık Yönetim: Cluster yönetimi, topic’lerin ayarlanması ve partition stratejileri gelişmiş konfigürasyon gerektirir.
  • Tüm Kullanım Senaryolarına Uygun Değil: Örneğin, basit mesaj kuyrukları veya çok bölgeli (multi-region) sistemler için Kafka yerine RabbitMQ veya Pulsar gibi çözümler daha avantajlı olabilir.

Apache Kafka Ne Zaman Kullanılmalı?

  • Gerçek zamanlı büyük veri işleme ve event-driven mimariler için idealdir.
  • IoT, log analizi, telemetri verisi işleme gibi büyük miktarda verinin hızlı bir şekilde işlenmesi gerektiğinde tercih edilir.
  • Finansal işlemler, anlık analizler ve dolandırıcılık tespiti gibi yüksek hızda veri işleme gerektiren alanlarda güçlü bir çözümdür.
  • Mikroservisler arasında olay bazlı iletişim sağlamak için kullanılabilir.
  • E-ticaret platformları, bankacılık sistemleri ve büyük ölçekli veri işleme platformları için uygundur.

Apache Kafka Ne Zaman Kullanılmamalı?

  • Düşük gecikme süresi gerektiren sistemlerde tercih edilmemeli. (Örn: Anlık mesajlaşma veya kritik işlemler).
  • Basit mesaj kuyrukları ve kısa süreli geçici mesajlar için kullanılmamalı. (Bu durumda RabbitMQ gibi daha hafif sistemler daha uygun olabilir) [5].
  • Çok bölgeli (multi-region) ve çok kiracılı (multi-tenancy) sistemler için ilk tercih olmamalı. (Apache Pulsar, bu alanlarda Kafka’ya kıyasla daha iyi çözümler sunar).
  • Yüksek depolama maliyetine duyarlı projelerde kullanılmamalı, çünkü Kafka mesajları disk üzerinde sakladığından depolama maliyetleri yüksektir.

Bu durumda, Apache Kafka büyük ölçekli, dağıtık ve gerçek zamanlı veri akışı gerektiren sistemler için mükemmel bir çözümdür. Ancak hafif mesajlaşma sistemleri veya düşük gecikme gerektiren uygulamalar için alternatifler değerlendirilmelidir. KRaft ile Kafka’nın operasyonel yükü azalsa da, hâlâ karmaşık yönetim gerektiren bir sistemdir ve gereksinimlere uygun olup olmadığı dikkatlice analiz edilmelidir.

Apache Pulsar

Apache Pulsar, dağıtık, yüksek performanslı ve çok kiracılı (multi-tenant) bir mesajlaşma ve akış işleme sistemi olarak öne çıkar. Düşük gecikme süresi, yüksek ölçeklenebilirlik ve yerleşik çok bölgeli (multi-region) replikasyon gibi özellikleri sayesinde, büyük veri işleme, mikroservis mimarileri ve olay bazlı sistemlerde yaygın olarak kullanılır. Pulsar, Kafka ve RabbitMQ gibi sistemlerle kıyaslandığında daha esnek bir mimari sunarak farklı veri merkezleri arasında otomatik veri senkronizasyonu sağlar.

Apache Pulsar Nasıl Çalışır?

Apache Pulsar’ın işleyişi, üretici (producer), konu (topic), tüketici (consumer) ve broker’lar etrafında şekillenir. Kafka’dan farklı olarak Apache BookKeeper kullanarak mesajları uzun süre saklayabilir ve geçmiş mesajlara erişimi mümkün kılar [6]. İşleyiş adımları aşağıdaki gibidir:

  • Producer
    • Üreticiler, mesajları belirli bir konuya (topic) gönderir.
    • Pulsar, mesajları bölümlere (partitions) ayırarak yük dengelemesi ve paralel işleme sağlar.
    • Birden fazla üretici aynı konuya mesaj gönderebilir.
  • Topics ve Partitions
    • Kafka’da olduğu gibi, Pulsar’da da konular (topics), partition’lara ayrılarak yüksek ölçeklenebilirlik sağlanır.
    • Partisyonlu konular, mesajların paralel olarak işlenmesine olanak tanır.
    • Çok bölgeli (multi-region) replikasyon desteği sayesinde, farklı veri merkezleri arasında mesajlar otomatik olarak senkronize edilebilir.
  • Consumer ve Subscription Modelleri
    • Tüketiciler (consumers), mesajları farklı abonelik (subscription) modelleri ile okuyabilir.
    • Pulsar, Kafka’dan farklı olarak birden fazla abonelik modelini destekler:
      • Exclusive: Konu yalnızca tek bir tüketici tarafından işlenir.
      • Shared (Round-Robin): Mesajlar tüketiciler arasında eşit şekilde dağıtılır.
      • Failover: Bir tüketici başarısız olduğunda yedeği devreye girer.
      • Key Shared: Aynı anahtara sahip mesajlar belirli tüketicilere yönlendirilir.
  • Depolama ve Apache BookKeeper
    • Pulsar, Kafka’dan farklı olarak Apache BookKeeper kullanarak ayrı bir depolama katmanı sunar.
    • Büyük ölçekli sistemlerde daha esnek bir yapı sağlar ve mesajların sınırsız süreyle saklanmasına olanak tanır.
    • Mesajlar disk üzerinde saklandığından, geçmiş mesajlara erişim mümkündür.
  • Mesaj İşleme ve Doğrulama (Acknowledgement)
    • Tüketiciler, mesajları aldıktan sonra bir ACK (acknowledgement) sinyali göndererek mesajın başarıyla işlendiğini bildirir.
    • Eğer mesaj işlenmezse, yeniden kuyruğa alınabilir veya Dead Letter Queue (DLQ) gibi mekanizmalar kullanılarak hata yönetimi sağlanabilir.

Apache Pulsar’ın Artıları

  • Yerleşik Çok Bölgeli Replikasyon: Farklı veri merkezleri arasında otomatik veri senkronizasyonu sağlar.
  • Gerçek Multi-Tenancy Desteği: Aynı küme içinde farklı tenant’ların izole bir şekilde çalışmasını mümkün kılar.
  • Esnek Abonelik Modelleri: Exclusive, Shared, Failover ve Key Shared tüketim modelleriyle farklı kullanım senaryolarına uyarlanabilir.
  • Ayrı İşleme ve Depolama Katmanları: Kafka’nın aksine, Pulsar işleme ve depolama katmanlarını ayırarak daha ölçeklenebilir bir yapı sunar.
  • Geçmiş Mesajları Saklama: Kafka’dan farklı olarak mesajlar sınırsız süreyle saklanabilir ve tekrar okunabilir.
  • Geniş Protokol Desteği: Sadece Pulsar API’sini değil, AMQP, MQTT ve Kafka API’lerini de destekleyerek farklı sistemlerle entegrasyonu kolaylaştırır.

Apache Pulsar’ın Eksileri

  • Kurulum ve Yönetim Karmaşıklığı: RabbitMQ’ya kıyasla daha fazla konfigürasyon gerektirir.
  • Daha Küçük Ekosistem: Kafka kadar geniş bir topluluk ve ekosistem desteğine sahip değildir.
  • Yüksek Kaynak Kullanımı: RabbitMQ’ya göre daha fazla bellek ve depolama tüketebilir.

Apache Pulsar Ne Zaman Kullanılmalı?

Eğer çok bölgeli (multi-region) ve çok kiracılı (multi-tenancy) bir mimariye ihtiyacınız varsa, Apache Pulsar en iyi seçeneklerden biridir. Büyük ölçekli veri akışı, mikroservisler ve gerçek zamanlı olay bazlı sistemler için Kafka’nın sunduğu özellikleri sağlarken, daha fazla esneklik ve ölçeklenebilirlik sunar.

Apache Pulsar Ne Zaman Kullanılmamalı?

  • Küçük ve orta ölçekli mesajlaşma sistemleri için RabbitMQ daha uygundur.
  • Kurulum ve yönetim açısından daha az karmaşıklık istenen durumlarda, Kafka veya RabbitMQ daha kolay bir alternatif olabilir.
  • Daha büyük topluluk desteği gerektiren projelerde, Kafka ekosistemi Pulsar’a kıyasla daha geniştir.

Bu bilgilere göre, Apache Pulsar, Kafka’nın güçlü yönlerini daha modern ve esnek bir mimariyle birleştiren bir sistemdir. Büyük ölçekli, çok bölgeli ve olay bazlı veri işleme gereksinimleri için en iyi çözümlerden biri olabilir.

Sonuç

Yukarıda üç teknolojinin de işleyişi, artıları-eksileri ve kullanım senaryoları hakkında kısaca bilgiler paylaştık. Bu bilgiler ışığında görüyoruz ki RabbitMQ, Kafka ve Pulsar, farklı ihtiyaçlara ve kullanım durumlarına uygun çözümler sunuyor.

RabbitMQ, basit ve orta ölçekli sistemler için kullanım kolaylığı ve güvenilirlik sağlarken, Kafka büyük ölçekli ve gerçek zamanlı veri akışı gerektiren sistemler için ideal bir seçenek. Pulsar ise Kafka’nın güçlü yönlerini daha esnek ve modern bir mimariyle birleştirerek, özellikle çok bölgeli ve çok kiracılı sistemler için en iyi çözümlerden birini sunuyor.

Proje gereksinimlerine göre bu teknolojilerden en uygun olanı seçmek, sistemin başarısı ve performansı açısından kritik öneme sahip. Seçim yaparken, Tablo 1’deki verilerle bu üç teknolojinin performans, ölçeklenebilirlik, güvenilirlik ve kullanım kolaylığı gibi açılardan birbirlerine göre durumlarını inceleyerek karar verebilirsiniz.

Bu karar sürecinde, projenizin ölçeği, veri akışı gereksinimleri ve mimari esneklik gibi faktörleri göz önünde bulundurmanız, doğru teknolojiyi seçmenize yardımcı olacaktır.

Tablo 1. RabbitMQ, Apache Kafka ve Apache Pulsar Karşılaştırması [7]

Karşılaştırma Tablosu

Yazımızın teknik gözden geçirmesi için Yasin Herken’e, editör desteği için ise Kübra ERTÜRK’e teşekkür ederiz.

Kaynakça

[1] CloudAMQP, “RabbitMQ for Beginners - What Is RabbitMQ?”, CloudAMQP Blog. [Çevrimiçi]. Available: https://www.cloudamqp.com/blog/part1-rabbitmq-for-beginners-what-is-rabbitmq.html. [Erişim Zamanı: 01, 24, 2025]

[2] E. Ozturk, “What is Message Broker and RabbitMQ?”, Medium. [Çevrimiçi]. Available: https://medium.com/@emirhanozturk/what-is-message-broker-and-rabbitmq-fbbbc5571326. [Erişim Zamanı: 01, 24, 2025].

[3] I. Soni, “What is RabbitMQ and Why Do You Need a Message Broker?”, Dev.to. [Çevrimiçi]. Available: https://dev.to/ishansoni22/what-is-rabbitmq-and-why-do-you-need-a-message-broker-4onh. [Erişim Zamanı: 01, 24, 2025].

[4] Amazon Web Services, “What is Apache Kafka?”, AWS. [Çevrimiçi]. Available: https://aws.amazon.com/tr/what-is/apache-kafka/. [Erişim Zamanı: 01, 17, 2025].

[5] Amazon Web Services, “The Difference Between RabbitMQ and Kafka”, AWS. [Çevrimiçi]. Available: https://aws.amazon.com/tr/compare/the-difference-between-rabbitmq-and-kafka/. [Erişim Zamanı: 01, 17, 2025].

[6] A. Pulsar, “Pulsar Features”, [Çevrimiçi]. Available: https://pulsar.apache.org/features/. [Erişim Zamanı: 01, 17, 2025].

[7] Confluent, “Kafka vs. Pulsar vs. RabbitMQ: Performance, Architecture, and Features Compared”, [Çevrimiçi]. Available: https://confluent.io/kafka-vs-pulsar/. [Erişim Zamanı: 01, 17, 2025].