Async/Await ve Event Loop: Binlerce Kullanıcı Aynı Anda Nasıl Bağlanıyor?

작성자

카테고리:

← 피드로
DEV Community · Feyza Nur Dandal · 2026-08-03 개발(SW)

Backend geliştirmeye başladığımda “async” kelimesini sadece kodun başına yazılan bir anahtar kelime sanıyordum. Daha sonra bunun modern web uygulamalarının en önemli performans mekanizmalarından biri olduğunu fark ettim.

Özellikle Network Access Control (NAC) gibi aynı anda binlerce cihazın bağlanabildiği sistemlerde async programlama vazgeçilmezdir.

Senkron Çalışma Nasıl Olur?

Diyelim ki aynı anda üç kullanıcı şirkete bağlanmak istiyor.

Senkron çalışan bir sistemde işlemler şu şekilde ilerler:

Kullanıcı 1 → İşlem tamamlanır.

Kullanıcı 2 → Bekler.

Kullanıcı 3 → Bekler.

Her kullanıcı kendisinden öncekinin işleminin bitmesini beklemek zorundadır.

Bu yaklaşım küçük uygulamalarda çalışabilir ancak kurumsal sistemlerde ciddi performans sorunlarına yol açar.

Asenkron Çalışma

Asenkron yapıda ise durum farklıdır.

FastAPI bir kullanıcı için PostgreSQL’den veri beklerken boş durmaz.

Bu sırada başka kullanıcıların isteklerini işlemeye devam eder.

Yani bekleme süresi boşa harcanmaz.

Bu sayede aynı donanımla çok daha fazla kullanıcıya hizmet verilebilir.

Async/Await Nedir?

Python’da;

user = await get_user()

Enter fullscreen mode Exit fullscreen mode

kodu aslında şunu söyler:

“Veriyi getir. Ben bu sırada başka işler yapayım. Veri hazır olunca bana haber ver.”

İşte await’in temel mantığı budur.

Event Loop Nedir?

Asenkron sistemlerin arkasında çalışan görünmez yöneticiye Event Loop denir.

Event Loop;

  • Yeni istekleri alır.
  • Bekleyen işlemleri takip eder.
  • Hazır olan işlemleri çalıştırır.
  • Sistemin boş kalmasını engeller.

Bunu bir restoran garsonuna benzetebiliriz.

Garson sipariş verdikten sonra mutfağın önünde beklemez.

Diğer masalara hizmet etmeye devam eder.

Sipariş hazır olduğunda geri döner.

Event Loop da tam olarak bu mantıkla çalışır.

NAC Sistemlerinde Neden Önemlidir?

Bir şirket ağına aynı anda yüzlerce cihaz bağlanabilir.

Her cihaz için;

  • Redis sorgusu
  • PostgreSQL sorgusu
  • Policy değerlendirmesi
  • RADIUS cevabı

gibi işlemler yapılır.

Bu süreçler asenkron yönetilmediğinde kullanıcılar gereksiz yere beklemek zorunda kalır.

Sonuç

Async programlama yalnızca daha hızlı kod yazmak değildir.

Asıl amacı sistem kaynaklarını verimli kullanmak ve aynı anda daha fazla isteği yönetebilmektir.

Bu nedenle modern backend framework’lerinin büyük bölümü asenkron mimariyi desteklemektedir.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다