၁။ ဆိုင်တစ်ခုစီအတွက် သီးခြားဒေတာခွဲထုတ်မှု (Tenant Isolation)
ကျွန်ုပ်တို့၏ Rust API ဆာဗာသည် သုံးစွဲသူထံမှ ပေးပို့လာသော မည်သည့် Request ကိုမဆို စစ်မှန်သော Session Token ဖြင့် အတည်ပြုပြီးမှသာ သက်ဆိုင်ရာ ဆိုင်ဒေတာကို ပြသပါသည်။
PostgreSQL Database အဆင့်တွင် Foreign Key များနှင့် Unique Constraints များဖြင့် တင်းကြပ်စွာ ချုပ်ကိုင်ထားသောကြောင့် အခြားဆိုင်မှ သင့်ဆိုင်ဒေတာကို ကြည့်ရှုခွင့် လုံးဝမရှိနိုင်ပါ။
၂။ ပြင်ဆင်၍မရသော အရောင်းစာရင်းနှင့် တိကျသော ငွေကြေးတွက်ချက်မှု
ဝဘ်ဆော့ဖ်ဝဲများတွင် ဖြစ်လေ့ရှိသော ဒသမပိုင်း တွက်ချက်မှု လွဲချော်ခြင်းများကို ကာကွယ်ရန် BeeTable သည် ငွေပမာဏအားလုံးကို အတိအကျ တွက်ချက်ပါသည်။
အရောင်းတစ်ခု ပြီးဆုံးသည့်အခါ ထိုအချိန်က ရောင်းချခဲ့သော ဈေးနှုန်းအတိုင်း Snapshot ရယူသိမ်းဆည်းထားပါသည်။ နောင်တစ်ချိန်တွင် ကုန်ပစ္စည်းဈေးနှုန်း ပြောင်းလဲသွားသော်လည်း ယခင်အရောင်းပြေစာများ မူလအတိုင်း မပြောင်းမလဲ တည်ရှိနေပါမည်။
Database Triggers များဖြင့် ငွေကြေးမှတ်တမ်းများကို ခွင့်ပြုချက်မရှိဘဲ ဖျက်ခြင်း သို့မဟုတ် ပြင်ဆင်ခြင်း မပြုနိုင်အောင် ကာကွယ်ထားပါသည်။
၃။ အင်တာနက်ပြတ်တောက်မှု ကာကွယ်ရေးနှင့် ပြန်လည်ရယူနိုင်စွမ်း
အရေးကြီးသော ကုန်ပစ္စည်း၊ စတော့နှင့် ရက်ချိန်းမှတ်တမ်းများအားလုံးတွင် `record_commands` တိုကင်စနစ်ကို အသုံးပြုထားသောကြောင့် အင်တာနက်ချို့ယွင်း၍ ပြန်လည်ပေးပို့သည့်အခါ ပစ္စည်းစာရင်း နှစ်ခါနှုတ်သွားခြင်းမျိုး မဖြစ်ပေါ်စေပါ။
အလှပြင်ဆိုင် ရက်ချိန်းများတွင်လည်း Database အဆင့်၌ အချိန်ထပ်ခြင်း မရှိစေရန် စစ်ဆေးပေးသဖြင့် ဝန်ထမ်း သို့မဟုတ် ထိုင်ခုံတစ်ခုတည်းကို တစ်ချိန်တည်း လူနှစ်ယောက် ဘိုကင်တင်မိခြင်း မရှိနိုင်ပါ။
၄။ စဉ်ဆက်မပြတ်သော ပြေစာနံပါတ်နှင့် ပရင့်စနစ်
အရောင်းတစ်ခုစီအတွက် `BT-00000001` ကဲ့သို့သော စဉ်ဆက်မပြတ် ပြေစာနံပါတ်ကို Database မှ တိုက်ရိုက်ထုတ်ပေးပါသည်။
ပြေစာတွင် ထုတ်ပေးသည့်အချိန်က ဆိုင်အမည်၊ မြို့နှင့် အခွန်အချက်အလက်များ အတိအကျ ပါဝင်ပြီး ပရင့်ထုတ်မှုနှင့် ပြန်လည်ထုတ်မှု (Reprint) များကို စနစ်တကျ မှတ်တမ်းတင်ထားပါသည်။
၅။ အဆင့်ခွဲခြားထားသော ဒေတာဘေ့စ် လုံခြုံရေး (Least Privilege)
Production API သည် DDL ခွင့်ပြုချက်မရှိသော သီးခြား `beetable_runtime` အကောင့်ဖြင့်သာ ချိတ်ဆက်ထားသောကြောင့် ပြင်ပမှ တိုက်ခိုက်မှုများ ဖြစ်ပေါ်လာလျှင်ပင် Database စနစ်တစ်ခုလုံးကို ဖျက်ဆီး၍ မရနိုင်ပါ။
စနစ်ဗားရှင်း အဆင့်မြှင့်တင်မှုများကို သီးသန့် အုပ်ချုပ်သူအကောင့်ဖြင့်သာ CI/CD မှတစ်ဆင့် ပြုလုပ်ပါသည်။
၆။ Cloud အခြေခံအဆောက်အအုံနှင့် အရန်သိမ်းဆည်းမှု (Backups)
Web နှင့် API ဆာဗာများကို လုံခြုံသော Docker Containers များဖြင့် မောင်းနှင်ပြီး Caddy Reverse Proxy ဖြင့် HTTPS (TLS 1.3) လက်မှတ်များကို အလိုအလျောက် စီမံထားပါသည်။
နေ့စဉ် Database အရန်သိမ်းဆည်းမှု (Backup) များကို Amazon S3 သို့ လုံခြုံစွာ ပို့ဆောင်သိမ်းဆည်းထားပါသည်။