🚀 İşletim Sistemi
Sunucu tarafında Debian 11 veya 12 kullanmayı düşünüyorum. Kontrol paneli kurmayacağım, sadece gerekli servisleri yükleyip sistemi hafif tutmayı planlıyorum.
⚡ Web & API
Nginx web sunucusu üzerinde PHP 8.4 çalışacak. PHP sadece basit API işlemlerini (üye kayıt, giriş, şifre güncelleme, veri ekleme/silme/listeleme gibi) yönetecek. Buradaki yük düşük kalacak.
🗄️ Veritabanları
Üye bilgileri, ayarlar ve loglar için MariaDB kullanmayı planlıyorum. Asıl yoğun veriler Cassandra üzerinde tutulacak. Burada milyonlarca veri kümelenmiş şekilde yer alacak ve FCM tokenler de burada saklanacak.
📬 Kuyruk & Bildirim
Sistem belirli koşulları kontrol edip uygun verileri RabbitMQ kuyruğuna alacak. Kuyruktan geçen veriler de FCM üzerinden push bildirim olarak gönderilecek.
🔍 Arama İşlemleri
Veri aramaları için Elasticsearch kullanılacak. Çok karmaşık arama gereksinimleri olmayacağı için sadece basit sorgularda görev alacak.
⚙️ Go Servisleri
Go, sürekli çalışan servisler ve milyonlarca requestin aynı anda yönetilmesi için kullanılacak. Yüksek işlem hacmi daha çok bu tarafta olacak.
🔑 Oturum Yönetimi
JWT ile oturum yönetimini düşünüyorum ancak Redis üzerinden RAM tabanlı oturum kontrolü de alternatif olarak aklımda.
📲 Uygulama Tarafı
Uygulamada sık sorgulanan veya nadiren güncellenen veriler SQLite üzerinde tutulabilir. Böylece çevrimdışı kullanım sağlanır ve APIye olan yük azaltılır.
İşlem Yükü Sıralaması
- Cassandra
- Go
- Elasticsearch
- PHP
- RabbitMQ
- MariaDB
- JWT / Redis
Görüş Beklediğim Noktalar
💡 Genel mimari sizce mantıklı mı?
💡 Siz olsanız hangi teknolojiyi değiştirirdiniz ya da ek yapardınız?
💡 Yüksek işlem hacmine karşı başka ne önerirsiniz?