সফটওয়্যার আর্কিটেকচারExam Night প্রমাণ দিয়েছে, Capacity Guarantee নয় — NovaCommerce ৫
দুটি বাস্তব পরীক্ষা, একটি scale-in ভুল এবং planning model। শেষ পর্বে observation, অনুমান, operating cost ও বাকি test আলাদা করা হয়েছে।
নতুন interface পুরোনো business ভুল ঢেকে দিতে পারে। প্রকৃত risk বুঝুন, সঠিক rule সংরক্ষণ করুন ও স্পষ্ট data ownership দিয়ে একটি capability সরান।
লেখক
Anichur Rahaman

নতুন returns screen দেখতে সুন্দর। কিন্তু test refund USD 60, পুরোনো invoice অনুযায়ী হওয়ার কথা USD 54 । Product price নেওয়া হয়েছে, original order discount কীভাবে ভাগ হয়েছিল তা বাদ। এটি শিক্ষামূলক উদাহরণ, customer case নয়। Modernisation-এর কঠিন অংশ প্রায়ই সেই rule, যা কেউ বলার প্রয়োজন মনে করেননি।
লক্ষ্য সব পুরোনো behaviour হুবহু রাখা বা সব component বদলানো নয়। Business যেন নিরাপদে চলে ও বদলায়। আজকের risk-এর evidence নিন, intended rule ঠিক করুন, তারপর bounded দায়িত্ব সরান—দুটি competing truth বানিয়ে নয়।
পুরোনো supported/tested system নতুন undocumented system-এর চেয়ে নিরাপদে বদলানো সহজও হতে পারে। কী reliably হচ্ছে না দেখুন: order restore, invoice correction, leaver access removal, supplier payment reconciliation বা বিশেষ contractor ছাড়া release। এগুলো তদন্তের capability, পুরোনো হলেই replacement-এর প্রমাণ নয়।
Actual runtime/framework/plugin/deployment অনুযায়ী support যাচাই করুন। PHP-এর current support table উদাহরণ: 5 নভেম্বর 2026 অনুযায়ী PHP 8.2 security support 31 ডিসেম্বর 2026 পর্যন্ত, active support শেষ। Ordinary fix নেই, upstream unsupported ও paid vendor coverage—আলাদা তথ্য। Supported runtime-ও app security certify করে না।
Operations, finance ও maintainer-দের সঙ্গে বসুন। Table-এর প্রতিটি risk-এ failure scenario, evidence, affected process/data, current control, impact, likelihood/time horizon, confidence, owner ও next action লিখুন। Unknown হলে তদন্ত, বানানো likelihood নয়। Active compromise নিশ্চিত হলে এখনই containment লাগতে পারে, পরের quarter-এর roadmap নয়।
NIST risk-assessment guidance threat, vulnerability, likelihood, impact ও uncertainty বিবেচনা করে। Workshop-এ consistent qualitative rating বা 1–5 triage চলতে পারে। কিন্তু দুটি ordinal score গুণ করে probability বা টাকার ক্ষতি পাওয়া যায় না। Heatmap-এর লাল ঘর পরের incident বলে দেয় না। 15 point হলেই সব business এই quarter-এ fix করবে—এমন নিয়ম নেই।
| যে risk দেখবেন | Evidence | কাজের next action |
|---|---|---|
| Support exposure | Exact version, vendor date, patch | Approved upgrade/support plan |
| Key-person dependence | দ্বিতীয় কেউ restore/release পারেন? | Rehearsal ও runbook |
| দুর্বল change test | Critical success/failure journey | Intended rule ও regression ধরুন |
| সীমাহীন shared write | Script/table/trigger/data owner | এক owner ও controlled seam |
| Security/control gap | Credential/scope/session/denial | Exposure contain; control verify |
| বিরোধী data | ID/balance/source owner | Actual value reconcile; authority ঠিক |
| Fragile integration | Lag/retry/unknown effect/alert | Owner-সহ bounded recovery |
| Capacity ceiling | Representative demand-এ wait | প্রমাণিত constraint ঠিক |
| Privacy/audit gap | Access/event/applicable retention | Scope/owner/retrieval লিখুন |
| Exit/licence constraint | Export/attachment/contract | Usable export ও dependency rehearsal |
Risk গ্রহণযোগ্য healthy capability retain/operate করুন। Supported upgrade, কঠিন boundary refactor, fit-gap test-এর পরে replace বা অপ্রয়োজনীয় কাজ retire—বিকল্প আছে। Re-platform supportability বাড়িয়েও পুরোনো business defect বয়ে নিতে পারে। Standard module কিনলেই tax/stock/payroll/export/integration মেলে না।
ছোট ও বোঝা system-এ tested cutover-সহ bounded full replacement যুক্তিসংগত হতে পারে। বড় rewrite-এ hidden rule ও দেরিতে feedback-এর risk থাকে। “Rewrite সাধারণত ব্যর্থ” বা “incremental সবসময় জেতে”—সার্বজনীন statistic নয়। Coexistence cost, deadline, team, data access ও recovery option মিলিয়ে বাছুন।
Representative order, failed payment, return, partial delivery, rounding, timezone ও permission boundary থেকে example নিন। Characterisation test বর্তমান behaviour ধরে, change দেখায়। Business owner ঠিক করবেন কোনটি valid rule, কোনটি bug। ইচ্ছাকৃত correction-এর agreed expected result চাই; bug চিরকাল নকলের প্রতিশ্রুতি নয়।
উদাহরণ order-এ tax-এর আগে দুই unit প্রতিটি USD 50 । USD 10 order discount সমানভাবে ভাগ, shipping/অন্য charge নেই, discounted amount-এ assumed 20% tax। Net 90 + tax 18 = paid 108 । Agreed proportional-return rule-এ এক unit net 45 + tax 9 =USD 54 । Full price+tax দিলে USD 60, এই assumptions-এ USD 6 বেশি। Actual allocation, rounding ও tax duty যাচাই করুন; universal return formula নয়।
Shadow comparison-এ safe calculation বা protected fixture তুলনা করুন। একই live refund, stock movement, payroll বা courier booking দুই system-এ পাঠাবেন না। Replay-এর আগেই external effect বন্ধ করুন। Screen-এ “test” লেখা থাকলেই input দুবার নিরাপদ নয়।
Strangler Fig pattern একটি bounded দায়িত্ব ধীরে replace করে, বাকি system চলে। Routing facade একটি seam হতে পারে; microservice বানাতেই হবে নয়। Modular app, adapter বা existing integration যথেষ্টও হতে পারে। Facade-এরও availability/performance/security review লাগে; নতুন gateway failure point হতে পারে।
Value আছে, dependency বোঝা ও recoverable handover সম্ভব—এমন boundary নিন। Stock/order tightly coupled হতে পারে, প্রথমে ঝুঁকিপূর্ণ। Identifier, ownership, field meaning, state transition ও কোন ধাপে কে কোন fact লিখতে পারবে নির্ধারণ করুন। Anti-corruption layer model translate করে; access-control ছাড় নয়।
প্রকৃত record/action-এ authorisation বহাল থাকতে হবে। Old/new দুই route-এ tenant/outlet scope, restricted field, audit attribution ও service identity রাখুন। Feature flag route বেছে দেয়; permission দেয় না বা নতুন data ফিরিয়ে দেয় না।
Legacy transaction বদলানো গেলে transactional outbox business change ও publication intent একই transaction-এ commit করতে পারে। Relay duplicate, late বা out-of-order দিতে পারে। Stable event/operation ID, safe deduplication, version/order rule ও reconciliation লাগবে। Outbox দুই database বা external refund-কে এক atomic transaction বানায় না।
Outbox সম্ভব না হলে supported API/export/change-data capture-এর constraint যাচাই করুন। Table change দেখলেই business meaning জানা যায় না। Initial snapshot/catch-up boundary, delete, historic correction, schema change ও downtime নির্ধারণ করুন। Lag/failed message monitor; bounded retry/backoff, poison message isolate ও unresolved কাজের owner দিন। চিরকাল retry নয়; sensitive payload authorised boundary-তে রাখুন।
Write authority বদলানোর আগে defined checkpoint-এ ID, actual field, balance, state ও external reference reconcile করুন; শুধু row total নয়। Real DB engine/production-like constraint test করুন। Permission denial, duplicate/out-of-order event, interrupted import, missing dependency ও restored backup দেখুন। Migration/reference-data script repeatable হোক, user choice overwrite না করে।
Cutover-এ old write stop/coordinate, agreed boundary পর্যন্ত change drain/capture, catch-up, validate, তারপর new authority চালু। নিরাপদ হলে limited observable cohort-এ end-to-end outcome/exception দেখুন। Screen 200 দিলেই ledger/stock/payment মেলে না। Business outcome-এর পাশাপাশি baseline/new latency, error ও manual reconciliation effort তুলনা করুন। Internal detail না দেখিয়ে readable/localised failure দিন; unknown external result-কে false failure বানিয়ে duplicate action নয়।
New system write নিয়ে ফেললে route ফেরালে new store-এ data আটকে বা effect replay হতে পারে। Tested reverse sync, forward repair বা controlled pause/reconciliation লাগতে পারে; শুধু flag flip নয়। Compatible data state, decision owner, stop condition ও completed external action সামলানো ঠিক করুন। দেখুন safe-deployment guide।

Decommission-এর আগে report, scheduled job, webhook, supplier script, support tool, credential, licence ও archive reader খুঁজুন। Agreed operational/contractual/applicable legal purpose অনুযায়ী প্রয়োজনীয় data/software রাখুন—controlled access ও tested retrieval-সহ। Personal data সবসময় চিরকাল রাখা নয়, request পেলেই সব financial evidence মুছেও নয়। প্রযোজ্য retention/privacy duty ও vendor exit term নিশ্চিত করুন।
Fit-gap-এ StoreConsole candidate হতে পারে। Exact version, enabled module, integration contract, migration tooling, permission ও recovery pilot-এ যাচাই করুন। Module list দেখে স্বাধীনভাবে সব adopt করা বা সব control আছে ধরে নয়। নিচের overview demo, সব module সব action log/2FA enforce বা day-one risk close করে—তার certification নয়।
সবার জন্য 30-day transformation promise নয়, ছোট discovery window ঠিক করুন। Owner-সহ risk register, recoverable system-এর evidence, critical rule example ও acceptance/recovery criteria-সহ bounded pilot plan দিন। Urgent exposure আগে contain। Dependency/data quality অজানা হলে প্রথম migration পরে হতে পারে।
USD 54 test refund-এ ফিরুন। ফল শুধু new screen old-এর সঙ্গে মিলেছে নয়। Intended discount rule লেখা, calculation checked, এক system-ই refund issue করতে পারে, আর authorised ব্যক্তি actual outcome trace করেন। পরের পরিবর্তনের ভিত্তি এখানেই শক্ত হয়।
পর্যালোচনা 5 নভেম্বর 2026 । Anichur Rahaman StoreConsole-এর নির্মাতা। Refund/migration দৃশ্য উদাহরণ; customer outcome বা universal timetable নয়।
লেখকের পরিচয়
Anichur Rahaman
পড়া চালিয়ে যান