ব্ল্যাক ফ্রাইডে সেল60% পর্যন্ত ছাড়
  • বার্ষিক প্ল্যানে প্রথম বছর 60% ছাড়
  • লাইফটাইম লাইসেন্সে 45% ছাড়
শেষ হবে
অফারটি নিন

Result দ্রুত, কিন্তু Queue নয় — NovaCommerce ৪

0.34 seconds-এর result job ধীর AI কাজের পেছনে আটকে ছিল। আলাদা lane সাহায্য করেছে; durable answer, bounded retry ও worker recovery-ও জরুরি।

লেখক

Anichur Rahaman

1 মাস আগে5 মিনিট পড়া237 দেখা
Result দ্রুত, কিন্তু Queue নয় — NovaCommerce ৪

পরীক্ষা শেষ করে শিক্ষার্থী merit card-এর অপেক্ষায়। হিসাবের job প্রায় 0.34 seconds-এর, অথচ 6 October-এর record-এ কিছু card 10–115 মিনিট দেরিতে আসে। একই lane-এর দুটি worker-এর সামনে প্রায় 2,000 AI job, প্রতিটি প্রায় দশ seconds—ছোট কাজটি সেখানেই আটকে ছিল।

NovaCommerce একটি course ও exam platform-এর গোপনীয়তা রক্ষার নাম। চতুর্থ পর্ব September–October 2026-এর বিদ্যমান observation রেখে implemented change ও প্রয়োজনীয় safeguard আলাদা করে। এটি নতুন incident audit বা StoreConsole benchmark নয়।

Shared state সরিয়ে ঝুঁকির জায়গা বদলেছে

Session, cache ও queue managed Valkey-তে রাখায় web node বদলানো সহজ হয়। একই সঙ্গে এটি shared dependency: 6 October load test-এ 2,854 connection timeout ছিল। Record-এ fresh TLS connection এবং primary/standby-এর প্রতি node 4 GB থেকে 8 GB করার কথা আছে। পরের 25–500 requests/s ramp-এ application error শূন্য হলেও CPU saturation-এ 143 load-balancer error ছিল। Connection failure সরে গেছে; পুরো পথে request এখনও ব্যর্থ হয়েছে।

Timeout একা memory শেষ হওয়া বা নির্দিষ্ট handshake CPU cost প্রমাণ করে না। Connection churn, limit, network ও server metric দেখুন। Exam-এ 12.5% memory ব্যবহার একটি observation, capacity guarantee নয়। noeviction memory চাপে পুরোনো key সরায় না, কিন্তু নতুন write reject করতে পারে; এটি queue persistence, lossless failover বা cache/session/job isolation দেয় না।

জরুরি outcome-এর নিজস্ব serving capacity দিন

AI narrative-কে merit/position কাজ থেকে আলাদা lane-এ নেওয়া হয়। Case অনুযায়ী merit card প্রায় এক মিনিটে আসতে থাকে। শুধু queue-এর নাম আলাদা যথেষ্ট নয়; process allocation, database connection ও shared CPU-তেও জরুরি কাজের জায়গা রাখতে হয়।

পুরোনো backlog-এর হিসাব: 2,000×10=20,000 worker-seconds; দুটি worker-এ প্রায় 10,000 seconds বা 166.7 মিনিট, overhead বাদে। এটি সম্ভাব্য wait বোঝায়, exact completion forecast নয়। পরের provider limiter আলাদা: shared আট call/minute হলে 2,000 one-call job-এর ন্যূনতম 250 মিনিট, অর্থাৎ 4 ঘণ্টা 10 মিনিট লাগে; retry বা নতুন arrival বাদে।

Failure classকরণীয়Completion evidence
Transient throttleShared limit; Retry-After; bounded jitterOriginal operation reconcile
Credit/auth সমস্যাPause; alert; কারণ ঠিক করুনDeadline মেনে controlled resume
External outcome অজানাReplay-এর আগে query/reconcileDuplicate side effect নয়
Retry deadline শেষFailed/pending record রেখে reviewAudited replay বা explicit final state
Worker হারানোProcessing restore; ledger মিলানAccepted work-এর হিসাব

সব refusal নয়, কারণ বুঝে retry

পুরোনো lane-এ shared eight-calls/minute limiter, 1–15 মিনিট exponential backoff ও jitter, সর্বোচ্চ 12 ঘণ্টা retry window এবং temporary template text ছিল। Credit shortage-এ প্রায় 3,800 delayed narrative এবং credit যোগের পর processing শুরুর কথাও আছে। এটি recovery observation; সব কাজ শেষ বা কোনোটি expire হতে পারে না—এমন প্রমাণ নয়।

Rate-টি case setting; provider entitlement-এর guarantee নয়। Token/concurrency limit-ও থাকতে পারে। Retry-After থাকলে মানুন। Transient throttling ও temporary failure absolute deadline-এর মধ্যে retry করুন। স্থায়ী auth, invalid payload বা exhausted credit হলে pause/stop করে owner-কে জানান। Pending/template status সৎভাবে দেখান। Deadline শেষে reviewable failure ও controlled replay রাখুন; কাজ চুপচাপ হারাবেন না।

Network timeout-এর আড়ালে provider কাজ শেষ করে থাকতে পারে। Stable operation ID, supported idempotency বা status reconciliation ছাড়া side effect পুনরাবৃত্তি করবেন না। Internal allowance ফেরত কেবল নিশ্চিত unconsumed reservation-এর জন্য; app counter বদলালে provider invoice refund হয় না। Billing reservation ও completion audit করুন। এগুলো design check; পুরোনো system-এ নতুন করে যাচাইকৃত implementation নয়।

Reliability map: durable answer, merit/AI lane, shared rate limit, bounded retry, reconciliation ও worker recovery।
জরুরি result ও optional narrative-এর service need আলাদা। পুরোনো setting-এর পাশাপাশি recommended check-ও দেখানো হয়েছে।

এক worker থাকলেই exactly-once নয়

একটি fixed 4 vCPU/8 GB worker queue, scheduler, WebSocket ও SMS চালাত; SMS gateway একটি outbound IP allow করত। Snapshot ছিল; reserved-IP recovery, standby worker ও exam burst capacity planned ছিল। Address-টি সত্যিই প্রয়োজনীয় outbound egress এবং provider allowlist সমর্থন করে কি না test করতে হবে; assign করলেই SMS সচল প্রমাণ হয় না।

Worker হারালে background completion থামে। Accepted answer-এর durable authoritative record আগে থাকতে হবে; শুধু Valkey queue দেখে নিরাপত্তার প্রতিশ্রুতি নয়। Persistence, acknowledged work reconciliation ও failover replay test করুন। Safe reservation ও idempotent effect থাকলে multiple worker স্বাভাবিক। একটি scheduler বা distributed lock crash-এর পর exactly-once business effect নিশ্চিত করে না। প্রযোজ্য ক্ষেত্রে job timeout reservation visibility/retry_after-এর কম রাখুন; এটি backoff নয়।

Identity ঠিক করুন, evidence রাখুন

দুটি limiter layer authenticated student-এর বদলে IP গুনছিল। 7 October-এ একটি dashboard endpoint-এর প্রায় 74% call 429 হয়; account-and-route key দিয়ে ওই endpoint-এর সমস্যা পরে সামলানো হয়। সব abuse limit তুলে দেওয়া নয়। Account, guest/network ও provider protection রাখুন; controlled proxy ছাড়া forwarded header বিশ্বাস নয়। Signed IP-ও authorization নয়।

Backend log Fluent Bit দিয়ে OpenSearch-এ যেত। Frontend shipping planned ছিল; local প্রায় 440 MB/day node delete হলে হারানোর ঝুঁকিতে ছিল। Bounded buffer, delivery monitoring, access control ও answer/token/private data redaction দরকার। Off-node মানেই instant lossless delivery নয়।

Exam digest starts/submissions, per-node request/5xx, CPU, queue health ও failed job দেখত। Exam চলাকালে pool minimum কমিয়ে দুই মিনিটে প্রায় 360 request ব্যর্থ হয়। “পরীক্ষায় scale-in নয়” runbook risk কমায়; enforced lock নয়। শুধু CPU বা zero failed job নয়, oldest-job age ও pending outcome-ও দেখুন। শেষ পর্বে test আসলে কী প্রমাণ করেছিল তা দেখা হবে।

সিরিজ

মূল তথ্যসূত্র

পর্যালোচনা: ৬ নভেম্বর ২০২৬। Anichur Rahaman, StoreConsole প্রতিষ্ঠাতা। পুরোনো observation রাখা হয়েছে; মূল সূত্র general behaviour বোঝায়, private system-এর নতুন verification নয়।

লেখকের পরিচয়

Anichur Rahaman

পড়া চালিয়ে যান