Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Message Ordering ve Partitioning: Sıra Garantisi Nerede Başlar, Nerede Biter?
Broker'lar global sıra vermez; Kafka'da partition key, Azure Service Bus'ta session, RabbitMQ'da single active consumer ile yalnızca anahtar başına sıra elde edilir ve consumer yine de version kontrolüyle sıradan bağımsız olmalıdır. OrderId ile partitioning, BookId key'inin yarattığı hot partition, partition sayısını artırınca taşınan key'ler ve librdkafka ile Java partitioner farkı Kafka 4.2 üzerinde gerçek çıktılarla.
Channel'lar: Point-to-Point Queue, Publish/Subscribe Topic ve Competing Consumer'lar
Point-to-point channel'da her message'ı tek bir consumer alır, publish/subscribe'da her abone grubu kendi kopyasını alır; competing consumer'lar ise aynı channel'ı paylaşarak ölçekler. Aynı OrderPlaced'i RabbitMQ'ya ve Kafka'ya yayınlayan iki adapter, exchange/queue/binding ile topic/partition/consumer group karşılaştırması, Kafka 4.2 share group'ları ve queue ile log arasındaki seçim gerçek çıktılarla.