Olgudan bakiyeye, dört adım.
KolayMiles hiçbir üründe satış yapmaz. Ürünler gerçekleşmiş olguları bildirir; kural ve defter buradadır.
1. Olgu gerçekleşir
Bir sipariş teslim edilir, marinada yakıt alınır, restoranda hesap ödenir. Bunların hepsi kendi uygulamasında olur — KolayMiles'ta değil. Kazanım tesliminde işlenir, ödemede değil: eksik toplanan bir sipariş iki an arasında küçülür ve ödemede ödüllendirmek her eksik siparişte fazla mil demektir.
2. Olay bildirilir
Ürün, olguyu imzalı bir HTTP çağrısıyla bildirir: POST /v1/events. Olayın
kimliği (event_id) üreticinin iş anahtarıdır ve değişmez — ağ hatasında aynı
kimlikle yeniden denenir, ikinci kez ödüllendirilmez. Kiracı ve program bilgisi gövdeden
değil, kimlik doğrulanmış anahtardan okunur.
3. Kural değerlendirilir
Bugün yayında olan kural sade: her 100 ₺ harcamada 5 mil, miller 24 ay geçerli. Kural programın verisidir, kodu değil — bir kampanya değişikliği satır düzenlemesidir, deploy değildir. 100 ₺ altındaki bir harcama meşru şekilde hiçbir şey kazandırmaz ve bu bir hata sayılmaz.
4. Defter yazar, bakiye türetilir
Kazanım deftere eklenir: kayıt, kaynağına (order:…, fuel:…,
bill:…) şema kısıtıyla bağlıdır. Bakiye hiçbir yerde saklanmaz — her zaman
kayıtların toplamıdır. İade gelirse kazanılan mil oransal olarak geri alınır; üye milleri
çoktan harcadıysa fark gizlenmez, raporlanır.
Bu dört adımın tamamı tek bir veritabanı işleminde bağlanır: olay kaydı olmayan mil açıklanamaz; mili olmayan olay sessizce kaybolmuş bir ödüldür. İkisi birlikte yazılır ya da hiç yazılmaz.