Nosozlikdan omon qoladigan obuna billingi
Ishlash monitoringi mahsuloti. Ko'p jamoalar xato qiladigan qism atrofida qurilgan: Stripe obunalari, webhook'lar va oradagi holatlar. O'z mahsulotimiz, tasvirlash uchun emas, ko'rsatish uchun qurilgan.
- FastAPI
- PostgreSQL
- Celery
- Redis
- Stripe
- Next.js
- Docker
/Muammo
Billing kodi ko'rinmas tarzda buziladi, gap pulga borib taqalguncha. Webhook ikki marta keladi, tartibsiz keladi yoki foydalanuvchi allaqachon boshqa tarifda bo'lganda keladi. Bularning har biri jimgina noto'g'ri obuna holatini yaratadi va uni bir oydan keyin sezishadi.
/Yondashuv
Webhook ishlovchilari idempotent va hodisa id'si bo'yicha kalitlanadi, shuning uchun takroriy yetkazish hech narsani o'zgartirmaydi. Obuna holati optimistik ko'chirilmaydi, Stripe'dan keltirib chiqariladi, shuning uchun o'tkazib yuborilgan hodisa keyingi sinxronizatsiyada o'zini tuzatadi. Narxlar versiyalanadi: tarifni o'zgartirish mavjud mijozlarni jimgina qayta narxlamaydi. Fon ishlari Celery va Redis'da, butun stack konteynerlashtirilgan.
/Natija
Aynan billing yo'llarini qamraydigan 244 ta avtotest bor, takroriy va tartibi buzilgan webhook yetkazish ham shu jumladan. Ustiga obuna holatini ko'rish uchun admin konsoli. Haqiqiy Stripe test kalitlari bilan ishlaydi, ya'ni integratsiya mock qilinmaydi, sinaladi.
/Qamralgan xizmatlar