İçeriğe geç
Tüm projelere dön

Backend

TicketRush

Konser/etkinlik bileti satışlarında oluşan race condition ve over-selling sorunlarını Redis tabanlı atomik kilitleme (Lua Script) ve RabbitMQ ile çözen, yüksek eşzamanlılığa dayanıklı bir event-driven bilet rezervasyon sistemi. Stok kontrolü bellek üzerinde yapılarak veritabanı darboğazı önlenir; Docker ile ölçeklenebilirlik ve veri tutarlılığı yük testleriyle kanıtlanmıştır.

Demo

CANLICanlı siteyi aç

Projenin yayındaki hali yeni sekmede açılır.

Uyku modunda olabilir

Problem

Popüler etkinliklerde binlerce kullanıcı aynı anda aynı koltuğu almaya çalıştığında çifte satış ve veri tutarsızlığı oluşur.

Öne çıkanlar

  • Atomik koltuk rezervasyonu için Redis ile dağıtık kilitleme
  • RabbitMQ ile olay tabanlı sipariş işleme
  • Docker ile paketlenmiş çok servisli yapı
  • Stok için ilişkisel PostgreSQL şeması

Mimari ve notlar

Stok kontrolü ve düşümü bellekte, tek bir atomik Redis Lua betiğiyle yapılır; böylece iki alıcı aynı koltuk için kontrolü birlikte geçemez ve veritabanı kritik yoldan çıkar. Kabul edilen rezervasyonlar RabbitMQ'ya devredilip olay olarak işlenir, ilişkisel stok şeması PostgreSQL'de durur ve tüm yapı Docker'da çalışır. Yük altındaki veri tutarlılığı Docker tabanlı yük testleriyle doğrulanmıştır.

GitHub'dan canlı

Yıldız
1
Fork
0
Son güncelleme

Diller

  • Java57,8%
  • TypeScript21,8%
  • JavaScript15,6%
  • CSS2,3%
  • Dockerfile1,4%
  • Other1,2%

Herkese açık GitHub API'sinden alınır, saatte bir yenilenir.

README'den

TicketRush, popüler konserler ve etkinlikler gibi yüksek talep gören senaryolarda race condition sorunlarını çözen, event-driven ve tam dağıtık bir bilet satış sistemidir.

Amaç, binlerce kullanıcının aynı anda “Satın Al” butonuna bastığı durumda bile:

  • Veri tutarlılığını sağlamak
  • Overselling riskini ortadan kaldırmak
  • Sistemi kilitlemeden, ölçeklenebilir bir mimari ile süreci yönetmektir.

Teknoloji Yığını

Aşağıdaki teknoloji yığını, yüksek trafikli sistemlerin ihtiyaçları olan ölçeklenebilirlik, tutarlılık ve performans kriterlerine göre seçildi.

…

README'nin tamamını GitHub'da oku (yeni sekmede açılır)

Teknolojiler

  • Java 21
  • Spring Boot 3
  • React
  • PostgreSQL
  • Redis
  • RabbitMQ
  • Docker