ပရောဂျက်၏ ရည်ရွယ်ချက်
ဒီနမူနာမှာ document တွေကို upload လုပ်နိုင်ပြီး asynchronous processing ဖြင့် စီမံကာ အကြောင်းအရာတွေကို search လုပ်နိုင်တဲ့ system ကို လေ့လာထားပါတယ်။
Architecture
Static frontend က presigned upload URL ရဖို့ API ကို ခေါ်ပါတယ်။ Browser က S3 ကို တိုက်ရိုက် upload လုပ်ပြီး event-driven queue က upload traffic နဲ့ document worker တွေကို ခွဲထားပါတယ်။ Worker တွေက စာသားထုတ်ယူပြီး OpenSearch မှာ index လုပ်ပါတယ်။
ဒီဒီဇိုင်းကို ရွေးချယ်ရခြင်း
- Queue ကြောင့် worker တွေက ကိုယ့် processing capacity နဲ့အညီ အလုပ်လုပ်နိုင်ပါတယ်။
- အကြိမ်ကြိမ် မအောင်မြင်တဲ့ message တွေကို DLQ မှာ ထိန်းသိမ်းပြီး စစ်ဆေးနိုင်ပါတယ်။
- Component တစ်ခုချင်းစီအတွက် IAM role သီးခြားထားခြင်းက access permission ကို ကန့်သတ်ပေးပါတယ်။
စမ်းသပ်အတည်ပြုရန်
Document တစ်ခု upload လုပ်ပြီး processing status ကို စောင့်ကြည့်ပါ။ သိပြီးသား စကားစုကို ရှာဖွေကာ event ထပ်ရောက်ချိန် worker ၏ လုပ်ဆောင်ပုံကို စမ်းသပ်ပါ။ ဒီနမူနာကို မိမိရဲ့ ရလဒ်နဲ့ architecture diagram ဖြင့် အစားထိုးပါ။
Processing Flow (Mermaid နမူနာ)
flowchart LR
A[Browser] --> B[API Gateway]
B --> C[Presigned S3 upload]
C --> D[S3 event]
D --> E[SQS queue]
E --> F[Python worker]
F --> G[OpenSearch]
E -. Retry မအောင်မြင် .-> H[DLQ]