Bir spor bahis ekranı durağan görünür: bir maç listesi, bir sütun fiyat. Altında ise oran akışı binlerce küçük değişiklikten oluşan bir akıştır ve operatörün işi bunların her birini doğru sırayla uygulamaktır. Bu rehber o akışı ilk istekten sonuçlanan bahse kadar izliyor.
1. Veri modeli
Neredeyse her akış aynı hiyerarşiyi kullanır:
- Spor: futbol, tenis, espor.
- Turnuva ya da lig: Premier League, ATP Tokyo, League of Legends Worlds.
- Etkinlik: başlangıç saati ve katılımcılarıyla tek bir maç.
- Pazar: etkinlikle ilgili tek bir soru; örneğin 1X2, 2,5 gol alt/üst ya da harita handikapı.
- Sonuç: bir fiyatı ve durumu (aktif, askıda, sonuçlanmış) olan tek bir yanıt.
Her öğenin sabit bir tanımlayıcısı vardır. Entegrasyon hatalarının çoğu, adları tanımlayıcı gibi kullanmaktan kaynaklanır: takım adlarının yazılışı değişir, kimlikler değişmez.
2. Önce snapshot, sonra deltalar
İstemci açılışta bir snapshot ister: güncel durumun tamamı. Bundan sonra deltalar alır: “bu fiyat değişti”, “bu pazar askıya alındı”, “bu etkinlik başladı” diyen küçük mesajlar.
İyi akışlar deltalarını numaralandırır. Örneğin Nocturn Sport, akışını tam bir snapshot ve sürüm numaralı deltalar olarak tanımlıyor. N sürümünü tutan istemci N+2’yi alırsa bir mesajın kaybolduğunu anlar ve eski bir fiyat göstermek yerine yeniden yükleme yapar. Sürümsüz akışlar istemciyi tahmine zorlar; bahis şirketleri de dünün oranlarını böyle sunar hâle gelir.
3. Push ve pull
Canlı futbolda fiyat dakikada birkaç kez değişebilir; bu yüzden canlı akışlar mesajları genellikle kalıcı bir bağlantı üzerinden push eder. Maç öncesi fiyatlar, birkaç saniyede bir HTTP ile pull edilmelerine çoğu zaman izin verecek kadar yavaş hareket eder. Birçok operatör ikisini de kullanır: maç öncesi kataloğu için pull, canlı için push.
4. Askıya almalar
Askıya alma, akışın “şu an buna bahis almayın” demesidir. Tetikleyiciler arasında gol, penaltı, servis kırılması, bir haritanın bitmesi ya da tedarikçinin kendi veri kaynağını kaybetmesi var. İstemci askıya almaları her şeyden hızlı uygulamalıdır; golden sonraki saniyelerde kabul edilen bir fiyat, para kaybetmenin klasik yoludur.
Maç öncesi pazarlar da başlama düdüğünden önce kapanır. Nocturn Sport, örneğin, bunları başlangıçtan bir dakika önce kapatıyor.
5. Bahsin alınması
API fiyat yayımlamanın ötesine geçiyorsa bahis kabulü belirli bir kalıbı izler:
- İstemci seçimi, gösterdiği fiyatı ve bahis tutarını benzersiz bir istek kimliğiyle gönderir.
- Sunucu fiyatın hâlâ geçerli ve pazarın açık olduğunu kontrol eder.
- Bahsi kabul eder, reddeder ya da yeni bir fiyat önerir.
- Ağ hata verirse istemci aynı istek kimliğiyle yeniden gönderir; sunucu ikinci bir bahis oluşturmak yerine ilk yanıtı döndürür.
Bu son adım, yani idempotency, hem oyuncunun bakiyesini hem de operatörün hesaplarını korur.
6. Sonuçlandırma
Etkinlik bittiğinde akış her sonuç için sonucu yayımlar: kazandı, kaybetti, iade ya da Asya handikapı gibi bölünmüş çizgilerde yarı kazandı ve yarı kaybetti. Platform her bahsi bunlara göre sonuçlandırır. Düzeltmeler olur: bir sonuç inceleme sonrasında değiştirilebilir; bu yüzden sonuçlandırma süreci temiz biçimde yeniden sonuçlandırabilmelidir.
7. Canlıya geçmeden önce neler test edilmeli
- Maç ortasında bağlantıyı kesin ve toparlanmayı kontrol edin.
- Bir deltayı sırası dışında yeniden oynatın ve istemcinin fark edip etmediğine bakın.
- Aynı bahsi tek bir istek kimliğiyle iki kez gönderin.
- Ayaklarından biri iade olan bir kombine bahsi sonuçlandırın.
Bu dört testi geçen bir akış, bir cumartesi öğleden sonrasına hazırdır.
Sık sorulan sorular
Snapshot ile delta arasındaki fark nedir?
Snapshot, her etkinliğin, pazarın ve fiyatın güncel durumunun tamamıdır. Delta ise yalnızca belirli bir sürümden bu yana değişenleri içerir. İstemci snapshot'ı bir kez yükler, ardından deltaları sırayla uygular.
Deltalar neden sürüm numarası taşır?
İstemcinin bir boşluğu fark edebilmesi için. 1.204 sürümünü tutan istemci 1.206'yı alırsa 1.205'in eksik olduğunu anlar ve yanlış bir fiyat göstermek yerine yeniden yükleme yapar.
Pazarlar neden askıya alınır?
Çünkü fiyat artık güvenli değildir: bir gol, bir kırmızı kart, bir servis kırılması ya da veri kaynağıyla bağlantının kopması. Askıya alınan pazar, yeni bir fiyatla yeniden açılana kadar bahis kabul etmez.
Bir oran akışı bahis kabulünü de üstlenir mi?
Bazıları üstlenir, bazıları üstlenmez. Saf bir akış yalnızca fiyat yayımlar. Bir spor bahis API'si ise bahis kabulü, geçmiş ve sonuçlandırma ekler; tekrar denemelerin bahsi ikiye katlamaması için genellikle her bahiste benzersiz bir istek kimliği kullanılır.
Push mu pull mu: hangi iletim daha iyi?
Fiyatların saniye saniye değiştiği canlı bahis için push (mesaj akışı ya da soket) uygundur. Pull (HTTP üzerinden yoklama) daha basittir ve maç öncesi için çoğu zaman yeterlidir.