မှန်ကန်သော Database ကို ရွေးချယ်ခြင်း
Polyglot Persistence: လုပ်ငန်းအလိုက် အသင့်တော်ဆုံး Tool ကို သုံးစွဲခြင်း
Section titled “Polyglot Persistence: လုပ်ငန်းအလိုက် အသင့်တော်ဆုံး Tool ကို သုံးစွဲခြင်း”Monolith တည်ဆောက်ပုံမှာဆိုရင်၊ သင်က များသောအားဖြင့် အရာအားလုံးအတွက် Database အကြီးကြီးတစ်ခုတည်းကိုပဲ ရွေးချယ်လေ့ရှိတယ်။ Microservices လောကမှာတော့ သင်က Polyglot Persistence ကို သုံးနိုင်ပါတယ် — ဒါက Service တစ်ခုချင်းစီရဲ့ သီးသန့်လိုအပ်ချက်အပေါ်မူတည်ပြီး၊ အဲဒီ Service အတွက် အကောင်းဆုံးအလုပ်လုပ်မယ့် မတူညီတဲ့ Database အမျိုးအစားတွေကို ရွေးချယ်အသုံးပြုတဲ့ သဘောတရားဖြစ်ပါတယ်။
SQL (Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ
Section titled “SQL (Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ”(ဥပမာများ: PostgreSQL, MySQL, SQL Server)
-
အသင့်တော်ဆုံးအခြေအနေများ -
-
ဖွဲ့စည်းပုံသေချာပြီး၊ ကြိုတင်ခန့်မှန်းနိုင်တဲ့ Data ပုံစံတွေအတွက် (User Profile လိုမျိုး)။
-
Data တွေ အမြဲတမ်းမှန်ကန်နေဖို့လိုတဲ့အခါနဲ့ သမားရိုးကျ ACID Transaction တွေလိုတဲ့အခါ။
-
Data တွေကြားမှာ ဆက်စပ်မှုတွေရှုပ်ထွေးပြီး Query လုပ်ရတာများတဲ့အခါ။
-
-
ဥပမာ Service -
UserServiceသို့မဟုတ်AccountingService။
NoSQL (Non-Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ
Section titled “NoSQL (Non-Relational) Databases တွေကို ဘယ်အချိန်မှာ သုံးမလဲ”-
Document Databases (ဥပမာ - MongoDB, Couchbase)
-
အသင့်တော်ဆုံး - ဖွဲ့စည်းပုံအတိအကျမရှိတဲ့၊ ပြောင်းလွယ်ပြင်လွယ်ရှိတဲ့ Data တွေအတွက်။ Item တစ်ခုချင်းစီမှာ မတူညီတဲ့ Structure တွေ ရှိနိုင်ပါတယ်။
-
ဥပမာ Service -
ProductCatalogServiceတစ်ခုမှာ “စာအုပ်” Product တစ်ခုရဲ့ အချက်အလက်တွေက “တီရှပ်” Product တစ်ခုရဲ့ အချက်အလက်တွေနဲ့ အများကြီးကွာခြားနိုင်တာမျိုး။
-
-
Key-Value Stores (ဥပမာ - Redis, Amazon DynamoDB)
-
အသင့်တော်ဆုံး - Key တစ်ခုကိုသုံးပြီး ရိုးရှင်းတဲ့ Data ကို အလွန်မြန်မြန် ထုတ်/သွင်း လုပ်ချင်တဲ့အခါ။
-
ဥပမာ Service - User Login Session တွေကို သိမ်းဆည်းဖို့
SessionServiceသို့မဟုတ်CachingServiceတစ်ခု။
-
-
Graph Databases (ဥပမာများ: Neo4j, Amazon Neptune)
-
အသင့်တော်ဆုံး - Data တွေကြားက “ဆက်စပ်မှု (Relationships)” တွေက အဓိကအရေးအကြီးဆုံးဖြစ်နေတဲ့အခါ။
-
ဥပမာ Service -
SocialNetworkService(“သူငယ်ချင်း” နှင့် “follows” ဆက်စပ်မှုတွေကို စီမံခန့်ခွဲခြင်း) သို့မဟုတ်RecommendationEngine(“ဒီပစ္စည်းဝယ်တဲ့သူတွေက ဟိုပစ္စည်းကိုလည်း ဝယ်ကြတယ်” ဆိုတာမျိုး)။
-