Skip to content
Tech

কয়েকটি কারণে এটি ঘটে, এবং প্রতিটির নিজস্ব ব্যাখ্যা আছে: ## স্থির বনাম গতিশীল অবস্থা CI পাইপলাইন একটি হিমায়িত মুহূর্তের বিরুদ্ধে পরীক্ষা করে। লাইভ API প্রদানকারী রিলিজ করে, অবচয় করে, এবং রেট-লিমিট আচরণ পরিবর্তন করে সম্পূর্ণ স্বাধীনভাবে। ## সবচেয়ে সাধারণ ব্যবধানগুলো **মক বনাম তারের আচরণ** — আপনার CI মক করা প্রতিক্রিয়ার বিরুদ্ধে চলে যা আপনি নিজেই লিখেছেন। প্রদানকারী যখন একটি নতুন ঐচ্ছিক ক্ষেত্র যোগ করে, একটি ক্ষেত্র পুনঃনামকরণ করে, বা ত্রুটির আকৃতি পরিবর্তন করে, তখন আপনার মক কখনই আপডেট হয় না। **প্রতিক্রিয়ার বৈচিত্র্য** — প্রদানকারীরা প্রায়ই `null`, অনুপস্থিত ক্ষেত্র, এবং `[]` এর মধ্যে অদলবদল করে প্রসঙ্গের উপর নির্ভর করে। আপনার পরীক্ষার ফিক্সচার সাধারণত শুধুমাত্র সুখী পথটি ক্যাপচার করে। **সময়-নির্ভর চুক্তি** — টোকেন মেয়াদ শেষ হওয়া, ক্লক স্কিউ, সেশন TTL, এবং ইডেম্পোটেন্সি কী উইন্ডো — এগুলো CI-তে সত্যিকার অর্থে পুনরাবৃত্তি করা কঠিন। **নেটওয়ার্ক-স্তরের আচরণ** — পুনঃচেষ্টা, টাইমআউট, HTTP/2 ট্রেইলার, chunked এনকোডিং সূক্ষ্মতা। লোকালহোস্ট এগুলো লুকিয়ে রাখে। **পরিবেশ রাউটিং** — আপনার স্টেজিং শংসাপত্র একটি ভিন্ন ব্যাকএন্ড ক্লাস্টার বা API সংস্করণে যেতে পারে যা প্রোডাকশন রাউটিং নথিভুক্ত করার পদ্ধতিতে প্রতিফলিত হয় না। ## কার্যকর সমাধান | পদ্ধতি | কী ধরে | |---|---| | **চুক্তি পরীক্ষা** (Pact, Schemathesis) | প্রদানকারীর স্কিমা পরিবর্তন যখন এটি ঘটে | | **রেকর্ড/প্লেব্যাক** (VCR, Polly) | তারের প্রকৃত প্রতিক্রিয়া হিমায়িত করে, অনুমান নয় | | **ক্যানারি/shadow পরীক্ষা** | লাইভ ট্র্যাফিকের বিরুদ্ধে প্রোডাকশনে চলে | | **প্রদানকারীর webhook/changelog সাবস্ক্রিপশন** | আপনাকে অগ্রিম জানায় | মূল সমস্যাটি হলো CI প্রমাণ করে যে আপনার কোড **আপনার কোড সম্পর্কে আপনার বিশ্বাসের** বিরুদ্ধে কাজ করে। এটি প্রমাণ করে না যে প্রদানকারী সেই বিশ্বাসগুলো পূরণ করে।

81

সুযোগ

কনজিউমার-চালিত কন্ট্র্যাক্ট টেস্টিং মার্জের আগে ব্রেকিং চেঞ্জ ধরে ফেলে, কিন্তু এটি PR-এর সময়ে কন্ট্র্যাক্ট স্থির করে রাখে এবং ডিপ্লয়মেন্টের পরে লাইভ সার্ভিসে জমা হওয়া সিম্যান্টিক ড্রিফট শনাক্ত করার কোনো ব্যবস্থা এতে নেই। দলগুলো প্রোডাকশন হটফিক্সে অনথিভুক্ত ফিল্ড যোগ করে, কোনো ইনসিডেন্ট সমাধান করতে গিয়ে এরর শেপ বদলে দেয়, অথবা OpenAPI স্পেক না ছুঁয়েই ভ্যালিডেশন শিথিল করে। World Quality Report 2025 অনুযায়ী, ডিস্ট্রিবিউটেড সিস্টেমে প্রোডাকশন ইনসিডেন্টের শীর্ষ তিনটি কারণের একটি হলো অচিহ্নিত API স্কিমা ড্রিফট, এবং প্রোডাকশনে প্রায় ৭০ শতাংশ API ব্যর্থতা সমস্ত CI চেক পার করে এসেছিল বলে এটি অনুমান করে। বর্তমানে এমন কোনো টুল নেই যা ক্রমাগত রিয়েল প্রোডাকশন ট্র্যাফিককে একটি প্রকাশিত কন্ট্র্যাক্টের বিপরীতে পর্যবেক্ষণ করে এবং মার্জ টাইমের পরিবর্তে লঙ্ঘনগুলো জমতে জমতে সামনে তুলে ধরে।

কেন এটি গুরুত্বপূর্ণ

আপনি যে কন্ট্র্যাক্ট প্রকাশ করেছেন তার বিপরীতে প্রকৃত লাইভ ট্র্যাফিক পর্যবেক্ষণ করলে আপনার API যা প্রতিশ্রুতি দেয় এবং যা এটি নিঃশব্দে দেওয়া বন্ধ করে দিয়েছে তার মধ্যকার শেষ ফাঁকটি বন্ধ হয়ে যাবে।

আমি কীভাবে সুযোগটি মূল্যায়ন করি

Opportunity Score হলো আমার নিজস্ব মূল্যায়ন, কোনো পরিমাপ নয়: এটি কতটা কষ্টের, কতবার সমস্যা তৈরি করে, এবং আজ এর সমাধান কতটা কম বিদ্যমান। বেশি স্কোর মানে আমার মতে এটি তৈরি করার বেশি মূল্য আছে।

তীব্রতা8/10

এটি উপস্থিত হলে কতটা ভোগান্তি সৃষ্টি করে।

ঘনত্ব8/10

মানুষ আসলে কতবার এটির মুখোমুখি হয়।

হোয়াইটস্পেস7/10

আজকের দিনে এর জন্য কতটা কম ভালো টুল রয়েছে।

সমাধানের যোগ্য আরও সমস্যা