Durum durumu
Keto Kartel, haftalık ve aylık abonelik döngülerinde sağlıklı öğün kitleri ve takviyeler satıyor. Abonelik modeli, standart bir e-ticaret yapısının kaldırmak için tasarlanmadığı bir operasyonel karmaşıklık katmanı oluşturuyor: her müşterinin aboneliği herhangi bir anda farklı bir durumda olabilir — aktif, duraklatılmış, döngü ortasında düşürülmüş, ürün değiştirilmiş — ve faturalama önceki dönemde hangi durum değişikliklerinin yaşandığından bağımsız olarak programa göre çalışır. Orijinal düz abonelik şeması tüm bunları basit açık/kapalı bayraklar olarak ele alıyordu. Bir müşteri döngü ortasında yükselttiğinde, sistem doğru orantılama yapmayı bilmiyordu. Abonelik sistemini şemadan yukarı doğru yeniden tasarladık. Abonelik durumu artık zaman damgalı açık geçişler olarak takip ediliyor — faturalama motoru her zaman faturalama anında durumun *ne olduğunu* okur, şu anda ne olduğunu değil. Faturalama idempotency anahtarları kullanır.
Ne değiştirmeliydi
Faturalama yeniden deneme yarışlarından çifte ücretlendirme. Müşterilerin döngü ortasında planları değiştirdiğinde yanlış orantılama. Başarısız sonra yeniden denenen faturalama girişimlerinden envanter hayalet rezervasyonları. Müşteri hizmetleri aylık düzinelerce faturalama şikayetiyle ilgileniyordu — kâr marjlarını aşındıran doğrudan bir iade ve personel zamanı maliyeti.
Ne değiştik
Açık durum geçişleri ve zaman damgalarıyla şema yeniden tasarımı. Her faturalama işleminde idempotency anahtarları — aynı anahtar iki kez gönderildiğinde her zaman bir ücret üretir. Sipariş oluşturmada değil, onaylanmış faturalama olayı abonesi olarak envanter kesintisi. Faturalama zamanındaki mevcut duruma değil, zaman ağırlıklı durum geçmişine dayalı orantılama mantığı.
Müşteri ne kazandı
- 01 Idempotent faturalama — fiziksel olarak çifte ücretlendirmek imkansız
- 02 Durum geçiş şeması — her zaman doğru orantılama
- 03 Envanter yalnızca onaylanmış faturalama olayında düşüyor
- 04 Tam plan değiştirme esnekliğiyle 6 abonelik kademesi