Multi-tenant ERP platformasi
Bitta kod bazasidan ko'p kompaniyaga xizmat qiluvchi ERP: sotuv, debitorlik, invoice va ombor tizimiga ishonchli uzatish.
- 584
- manba fayl
- 23
- DB migratsiya
- 4
- kirish darajasi
- 2
- tenant rejimi
Muammo
Har bir kompaniya uchun alohida tizim qurish ham qimmat, ham qo'llab-quvvatlab bo'lmaydigan ish. Ammo hammani bitta umumiy bazaga qo'yish — bir kompaniya boshqasining ma'lumotini ko'rib qolishi xavfini tug'diradi. Bunga qo'shimcha: debitorlik Excel'da yuritilardi, kim qancha qarzdor va qaysi hisob-faktura qachon to'langani bo'yicha yagona haqiqat manbai yo'q edi.
Yechim
Tenant konteksti JWT ichida olib yuriladi, kompaniya esa `shared` yoki `dedicated` rejimda ishlashi mumkin — domen qatlamini qayta yozmasdan. Kirish huquqi ikki o'lchovli: rol nima qila olishini, data-scope esa qaysi ma'lumotni ko'rishini belgilaydi — bir xil endpoint filial boshlig'iga va savdo agentiga turli natija qaytaradi. Debitorlik to'liq modellashtirilgan: hisob-faktura hayot sikli, to'lovni fakturalarga taqsimlash, muddat bo'yicha aging va mijoz akt-sverkasi.
Asosiy imkoniyatlar
- Multi-tenant: kompaniya `shared` yoki `dedicated` bazada ishlashi mumkin, tanlov domen kodiga ta'sir qilmaydi
- To'rt darajali data-scope: butun ma'lumot / o'z filiali / o'z bo'limi / faqat o'z yozuvlari
- Sotuv buyurtmasining to'liq hayot sikli — qoralamadan bajarilishgacha
- Debitorlik: invoice qoralama → chiqarilgan → to'langan, to'lov taqsimoti va muddat bo'yicha aging hisoboti
- Mijoz akt-sverkasi: xronologik faktura va to'lov qatorlari, taqsimot izohlari bilan
- Outbox pattern: buyurtma ombor tizimiga navbat orqali uzatiladi, `FOR UPDATE SKIP LOCKED` bilan parallel worker'lar bir-biriga xalaqit bermaydi
- Crash recovery: yarim qolgan vazifalar belgilangan vaqtdan keyin avtomatik qayta navbatga qo'yiladi
- 23 ta Alembic migratsiyasi — sxema tarixi to'liq versiyalangan va qaytarilishi mumkin
- Next.js admin panel va dala savdosi uchun Flutter mobil ilovasi
Arxitektura
So'rov JWT'dan tenant va kirish doirasini oladi, domen xizmatlari shu kontekst ichida ishlaydi. Tashqi tizimga chiqadigan har bir hodisa avval bazadagi navbat jadvaliga yoziladi — shuning uchun tarmoq uzilsa ham buyurtma yo'qolmaydi.
Klientlar
API va kirish nazorati
ALL_DATA / OWN_BRANCH / OWN_DEPARTMENT / OWN_RECORDS
Domen modullari
Integratsiya
SKIP LOCKED, retry, stale job recovery
Ma'lumot
Texnologiyalar
Backend
Veb
Mobil
Infratuzilma
Mening rolim
Backend arxitekturasi va to'liq domen qatlami, RBAC va data-scope modeli, integratsiya worker'i, admin panel, Flutter mobil ilovasi.
Mijoz nomlari, domenlar va server manzillari maxfiylik sababli oshkor qilinmagan.