# Event Streaming

Adres: https://softwaredictionary.org/tr/terimler/event-streaming
Kategori: Backend ve API'ler
Son güncelleme: 2026-09-30
Türkçe karşılığı: olay akışı
Okunuşu: ivent striming

Kısaca: Event streaming, olayları birçok uygulamanın gerçek zamanlı okuyup yeniden oynatabildiği ve işleyebildiği sürekli, sıralı, kalıcı bir log olarak kaydetmektir.

## Event streaming nedir?

Event streaming, bir sistemde olan her şeyi, örneğin bir tıklamayı, bir ödemeyi, bir sensör okumasını ya da bir veritabanı değişikliğini bir olay (event) olarak ele alır ve bu olayları gerçekleştikçe sırayla kaydeder. Olaylar kalıcı, yalnızca eklemeli (append-only) bir logda tutulur ve istediği sayıda uygulama bu logu, ya olaylar geldiği anda ya da daha sonra, geçmişin herhangi bir noktasından okuyabilir.

Apache Kafka ve Apache Pulsar gibi platformlar olayları konulara (topic) düzenler; konular sunuculara yayılabilmesi ve paralel işlenebilmesi için bölümlere (partition) ayrılır. Sıra bir bölüm içinde garanti edilir; bu yüzden bir müşterinin kimliği gibi aynı anahtara sahip olaylar sırada kalır. Her tüketici logdaki kendi konumunu, yani offset'i izler. Bu sayede yeni bir servis baştan başlayıp aylarca geçmişi yeniden oynatabilir, hatalı bir tüketici de geri sarıp yeniden işleyebilir. Olaylar okunduktan sonra silinmek yerine, yapılandırılmış bir saklama süresi boyunca (saatlerden sonsuza kadar) tutulur.

Event streaming, kapı zili yerine güvenlik kamerası kaydına benzer: kapı zili yalnızca o anda evde olan kişiyi uyarır; bir kayıt ise ihtiyacı olan herkes tarafından canlı izlenebilir ya da sonra geri sarılabilir. Gerçek zamanlı analitikte, sahtekârlık tespitinde, etkinlik takibinde, change data capture yoluyla veritabanları ile veri ambarları arasında veri kopyalamada ve olay güdümlü mimaride mikroservisleri bağlamada kullanılır. Kafka Streams ve Apache Flink gibi akış işleme araçları, olaylar akarken onları filtrelemek, birleştirmek ve toplamak için akışları sürekli okur.

Event streaming sıklıkla mesaj kuyrukları ve event sourcing ile karıştırılır. Geleneksel bir mesaj kuyruğu, bir tüketici onayladığında mesajı siler ve her mesaj tek bir worker'a gider; bir olay akışı ise olayları saklar, böylece birçok tüketici onları bağımsız okuyabilir ve yeniden oynatabilir. Event sourcing, bir uygulamanın durumunu onu üreten olaylar dizisi olarak sakladığı bir mimari kalıptır; çoğu zaman bir olay logu kullanır, ancak event streaming olayları bütün bir kurumda taşımak ve işlemek için daha geniş altyapıdır.

## Önemli noktalar

- Olaylar, kalıcı ve yalnızca eklemeli bir logda sırayla kaydedilir.
- Birçok tüketici aynı akışı bağımsız okur ve her biri kendi offset'ini izler.
- Akışlar, saklama süresi içinde herhangi bir noktadan yeniden oynatılabilir.
- Bölümler, her anahtar için sırayı korurken paralel işlemeye izin verir.
- Kuyruktan farklı olarak bir olayı okumak onu kaldırmaz.

## Örnek: Kafka'nın komut satırı araçlarıyla bir akışa yazmak ve onu yeniden oynatmak

```bash
# Create a topic with 3 partitions
kafka-topics.sh --bootstrap-server localhost:9092 \
  --create --topic page-views --partitions 3

# Write an event to the stream
echo '{"user": 42, "page": "/pricing"}' | \
  kafka-console-producer.sh --bootstrap-server localhost:9092 --topic page-views

# Read the stream from the very first event (replay)
kafka-console-consumer.sh --bootstrap-server localhost:9092 \
  --topic page-views --from-beginning
```

## Sık sorulan sorular

**Event streaming ile mesaj kuyruğu arasındaki fark nedir?**

Mesaj kuyruğu her mesajı bir tüketiciye verir ve işlendikten sonra siler. Event streaming platformu ise olayları bir saklama süresi boyunca sıralı bir logda tutar; böylece birçok tüketici aynı olayları bağımsız okuyabilir ve daha sonra yeniden oynatabilir.

**Kafka bir veritabanı mıdır?**

Olağan anlamda değil. Kafka olayları kalıcı olarak saklar ve süresiz tutabilir, ancak akışları sırayla eklemek ve okumak için tasarlanmıştır; ad hoc sorgular ya da tekil kayıtları güncellemek için değildir. Bu yüzden genellikle veritabanlarının yanında çalışır.

**Akış işleme (stream processing) nedir?**

Akış işleme, dakikada sayfa görüntülemelerini saymak ya da şüpheli ödemeleri saniyeler içinde işaretlemek gibi, olaylar geldikçe üzerlerinde yapılan sürekli hesaplamadır. Zaten saklanmış veriler üzerinde periyodik çalışan toplu işlemenin (batch processing) tersidir.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
