Regio
Fastify · PostgreSQL · Redis · Expo / React Native · Caddy · MinIO · Docker
Regio size bir bölgenin siluetini gösterip adını soruyor. Yanlış tahminler mesafe, yön ve komşuluk ipuçlarıyla geri dönüyor; karanlığa atış yapmak yerine yaklaşarak buluyorsunuz. 168 ülke ve 4.115 bölge üzerinden her gün yeni bir set; ayrıca seri takibi, bildiğiniz yerler için damgalardan oluşan bir pasaport, sıralamalar ve dünya turu modu var. On iki dilde çalışıyor ve bölge adları oyuncunun kendi dilinde görünüyor.
İstemci tek bir Expo/React Native kod tabanı; hem web hem mobil uygulama aynı yerden çıkıyor. Oyun tasarım gereği çevrimdışına dayanıklı: tahminler önce cihazda duruyor, sonra sunucuyla uzlaştırılıyor; sunucuya hiç ulaşamamış turlar kaybedilmek yerine kuyruğa alınıp tekrar gönderiliyor. Bu uzlaştırmayı doğru yapmak - hangi yüzeyde bitirilmiş olursa olsun bir bulmacaya tek skor - tahmin mekaniğinin kendisinden daha çok emek istedi.
Backend, PostgreSQL ve Redis üzerinde Fastify; ürünün gerçekte taşıdığı üç yükü ayıracak şekilde bölünmüş durumda, çünkü üçü farklı ölçekleniyor. Okuma - harita ve sıralamalar - Redis'ten geliyor ve saniyelik tazelik yetiyor. Yazma yüksek hacimli, küçük kayıtlı ve kötüye kullanıma açık; hız sınırlamasından geçip Postgres'e tamponlanıyor. Para ise kendi yolunda, defter kaydıyla birlikte transaction içinde işliyor - hata toleransı sıfır olan tek kısım orası.
Kendini sponsorlukla çeviriyor: bir sponsorun adı, kendi bölgesi cevap olduğu her gün sonuç kartında görünüyor. Bu da mağaza makbuzlarını önemli kılıyor ve oradaki kural bildirime güvenmemek. Apple ve Google webhook'larından yalnızca "hangi işlem değişti" bilgisi okunuyor; hakkın kendisi sonrasında kendi kimliğimizle mağazaya sorularak alınıyor. Böylece sahte bir bildirimle hak verilemiyor ve iade alan bir kullanıcı premium'u sonsuza kadar korumuyor - para yolundaki en sessiz hata budur.
Öne çıkanlar
- Tek Expo kod tabanı hem web hem mobil uygulama olarak çıkıyor
- Çevrimdışına dayanıklı oyun: tahminler sunucuyla uzlaştırılıyor, gönderilemeyen turlar kaybedilmiyor
- Okuma Redis'ten, yazma Postgres'e tamponlu, para defter kaydıyla kendi transaction yolunda
- Mağaza webhook'ları güvenilmez kabul ediliyor: hak, Apple ve Google'a kendi kimliğimizle sorularak alınıyor
- Reklam, bakım modu ve asgari sürüm için uzaktan yapılandırma - uygulama güncellemesi gerekmeden değişiyor