castomFLOW
castomFLOW খুলুন

যে রানে আপনি ভরসা করতে পারেন

কোনো অটোমেশন লক্ষ করা হয় না যতক্ষণ না সেটি দুবার কিছু পাঠায়

তারপর সবাই লক্ষ করে। এই পৃষ্ঠার চারটি প্রক্রিয়া আছে কারণ এই ধরনের সফটওয়্যারের ব্যর্থতাগুলো সবসময় একই চারটি ব্যর্থতা, এবং সেগুলো সতর্কতা নয়, নকশার মাধ্যমেই এড়ানো সম্ভব।

প্রকাশ করার আগে সিমুলেশন চালান

বন্ধ থাকা একটি ওয়ার্কফ্লোর ভেতর দিয়ে একটি বাস্তব রেকর্ড পাঠান, এবং ঠিক কী ঘটত তা ফিরে পড়ুন: নেওয়া পথ, প্রতিটি ধাপে প্রতিটি মান, প্রতিটি বার্তার ভাষা, এবং প্রতিটি বাহ্যিক সিস্টেমে যেতে যে অনুরোধ যেত।

কিছুই বাইরে যায় না। কোনো ইমেইল পাঠানো হয় না, কোনো ইনভয়েস তৈরি হয় না, কোনো চার্জের চেষ্টা হয় না, কোনো সারি লেখা হয় না। বাহ্যিক কলগুলো উদ্দেশ্য হিসেবে সংরক্ষিত হয়, যে পেলোড পাঠানো হতো তার সাথে, যাতে সমস্যা হওয়ার আগেই আপনি দেখতে পারেন ম্যাপিং ঠিক আছে কি না।

সিমুলেশনই সেই প্রশ্নের উত্তর দেয় যা মানুষকে অটোমেশন চালু করতে আটকে রাখে: এটি আসলে কী করবে?

সিমুলেশন · অর্ডার ৮৮,২১৪কিছুই পাঠানো হয়নি
  • 1ঠিকানা যাচাইমিলেছে। ৬টি ফিল্ড লিখতেন।
  • ?শর্ত১ ০০০ জ়াউয়ের বেশি অর্ডার? না — ২৮৯,০০ জ়াউ। সংক্ষিপ্ত পথ নেওয়া হয়েছে।
  • 3চালানইনভয়েসিং সিস্টেমে POST করা হতো। পেলোড সম্পূর্ণ দেখানো হয়েছে।
  • !এখানে ধরা পড়েছেভ্যাট হার ভুল ফিল্ড থেকে ম্যাপ হয়েছিল। হিসাবরক্ষকের ইনবক্সে না পৌঁছে সিমুলেশনেই ধরা পড়ল।

পাঠানো হয়েছে: কিছুই নাচার্জ করা হয়েছে: কিছুই না

প্রতিটি রান সেই সংস্করণেই চলে যেটিতে সে প্রবেশ করেছিল

একটি ওয়ার্কফ্লোতে পরিবর্তন প্রকাশ করলে ইতিমধ্যে সেখানে চলমান রানগুলোতে কোনো প্রভাব পড়ে না। প্রতিটি রান যে সংস্করণে শুরু হয়েছে সেটিতেই আটকে থাকে এবং যত সময় লাগুক বা আপনি এর মধ্যে যতই পুনর্লিখন করুন না কেন, সেই সংস্করণেই শেষ হয়।

ফলে দশ হাজার মানুষ যখন অর্ধেক পথে আছেন তখনও আপনি একটি ওয়ার্কফ্লো পুনর্গঠন করতে পারেন, এবং প্রত্যেকে যে ফ্লো প্রতিশ্রুতি পেয়েছিলেন সেটিই সম্পূর্ণ করেন। বিকল্পটি — প্রবেশের সময় পুরো ডাউনস্ট্রিম পথ বাস্তবায়িত করার নকশা — এটাই বেশিরভাগ টুলে চলমান অটোমেশন সম্পাদনাকে বিপজ্জনক মনে হওয়ার কারণ। এখানে এটি সাধারণ ব্যাপার।

প্রকাশের মুহূর্ত থেকেই নতুন রানগুলো নতুন সংস্করণ পায়। কোনো রান কোন সংস্করণে আছে তা রানের ওপরেই লেখা থাকে, তাই মার্চ মাসের আচরণ নিয়ে প্রশ্নের উত্তর সেপ্টেম্বরেও পাওয়া যায়।

চালু অবস্থায় সম্পাদনাv4 → v5
  • 1আগে২ ৯১৮টি রান চলমান, সবগুলো v4-এ। কিছু দুই দিনের অপেক্ষায়।
  • 2v5 প্রকাশ করুনদুটি ধাপ পুনর্বিন্যস্ত, একটি বার্তা পুনর্লিখিত।
  • 3পরেওই ২ ৯১৮টি রান v4 শেষ করবে। ১১:৪০ থেকে শুরু হওয়া সবকিছু v5 চলবে।
  • §কেউই নাএকটি ওয়ার্কফ্লোর অর্ধেক এবং আরেকটির অর্ধেক পাননি।

প্রতিটি রানে সংস্করণ সংরক্ষিতপুরনো সংস্করণ সংরক্ষিত

পুনরায় পাঠাতে পারে না এমন রিট্রাই

একটি ধাপ তার ইনপুটের বিশুদ্ধ ফাংশন, এবং তার প্রভাবগুলো রানের পরবর্তী ধাপে অগ্রগতির সঙ্গে একসঙ্গে কমিট হয়। এমন কোনো সময় নেই যখন বার্তা চলে গেছে কিন্তু রান তা জানে না।

এটাই পুরো কৌশল, এবং এটি প্রতিশ্রুতি নয়, কাঠামোগত বৈশিষ্ট্য। ধাপের মাঝপথে কোনো ওয়ার্কার বন্ধ হয়ে গেলে — ডিপ্লয়, ক্র্যাশ, বা হারিয়ে যাওয়া মেশিন — রান ঠিক সেখানেই থেকে যায়। আরেকটি ওয়ার্কার তা গ্রহণ করে ধাপটি পুনরায় চালায়। যেহেতু প্রভাব ও অগ্রগতি একত্রে কমিট হয়, দুটোই ঘটেছে অথবা কোনোটিই ঘটেনি।

যেসব সিস্টেম আইডেম্পোটেন্সি কী সমর্থন করে সেগুলোতে করা আউটবাউন্ড কলে একটি কী যুক্ত থাকে, যা রান ও ধাপ থেকে উৎপন্ন হয়, যাতে অন্য পক্ষও পুনরাবৃত্তিটি চিনতে পারে।

পাঠানোর মাঝপথে ওয়ার্কার বন্ধপুনরুদ্ধার হয়েছে
  • 1ধাপ ৫ শুরুশিপিং নোটিশ পাঠান।
  • ✕ওয়ার্কার বন্ধ হয়ে যায়ডিপ্লয়। কিছুই কমিট হয়নি।
  • 2পুনরায় গৃহীতআরেকটি ওয়ার্কার দেখে রান এখনও ধাপ ৫-এ আছে।
  • ✓একবার পাঠানো হয়েছেগ্রাহক দুটি নয়, একটি ই-মেইল পেয়েছেন।

প্রভাবগুলো অগ্রগতির সঙ্গে কমিট হয়প্রতি রান ও ধাপে আইডেম্পোটেন্সি কী

মানুষ পড়ার জন্য লেখা একটি লগ

প্রতিটি রান, প্রতিটি ধাপ, নেওয়া শাখা এবং সেটি নির্ধারণকারী মান। প্রতি ধাপের সময়। প্রতিটি বাহ্যিক কলের রিকোয়েস্ট ও রেসপন্স, ক্রেডেনশিয়াল লুকিয়ে। রানটি যে সংস্করণে ছিল। রান কোথায় অপেক্ষা করছে এবং কখন পর্যন্ত।

যখন কেউ জিজ্ঞেস করেন চতুর্থ তারিখে করা অর্ডারের কী হলো, তখন একটি উত্তর থাকে, এবং তা খুঁজে পেতে তিনটি সিস্টেমের লগ মেলানোর এক বিকেলের পরিবর্তে এক মিনিট লাগে।

ব্যর্থ হওয়া রানগুলো এক জায়গায় জমা হয়, কারণ গুচ্ছবদ্ধ অবস্থায়, তাই “রাতভরে একচল্লিশটি ব্যর্থতা” মিটে যায় “একটি সরবরাহকারী নয় মিনিট ধরে 503 দিয়েছে”-এ — একচল্লিশটি আলাদা তদন্তের বদলে।

রাতভরে, গুচ্ছবদ্ধ৪১টি ব্যর্থতা
  • 1একটি কারণসরবরাহকারীর API ০২:৪১ থেকে ০২:৫০ পর্যন্ত 503 দিয়েছিল।
  • 2কী ঘটেছিল৪১টিই পুনরায় চেষ্টা করা হয়েছিল; ৩৯টি দ্বিতীয় চেষ্টায় সফল হয়েছে।
  • 3অবশিষ্টদুটি থেমে গিয়ে একজন মানুষের অপেক্ষায় আছে। দুটোই ব্যর্থ সারির সঙ্গে তালিকাভুক্ত।
  • §একচল্লিশটি নয়তদন্ত। একটি, এবং দুটি রেকর্ড নিয়ে একটি সিদ্ধান্ত।

প্রমাণপত্র লুকানো হয়েছেসংস্করণ সংরক্ষিত

যা আমরা দাবি করি না

আমরা মার্কেটিং পাতায় আপটাইমের সংখ্যা প্রকাশ করি না, কারণ পরিমাপের সময়সীমা ও “চালু”-র সংজ্ঞা ছাড়া একটি সংখ্যা কেবল অলংকার। চুক্তিগতভাবে এটি প্রয়োজন হলে জিজ্ঞাসা করুন, আমরা বলব আসলে কী কী প্রতিশ্রুতি দিতে পারি।

আমরা অন্য কারও API নির্ভরযোগ্য করতেও পারি না। কোনো প্রদানকারী বন্ধ থাকলে, তার ওপর নির্ভরশীল ওয়ার্কফ্লো অপেক্ষা করে, পুনরায় চেষ্টা করে এবং শেষে স্পষ্ট কারণসহ থেমে যায়। আমরা যা প্রতিশ্রুতি দিতে পারি তা হলো: ব্যর্থতাটি দৃশ্যমান থাকবে, কিছুই দূষিত হবে না, এবং পুনরায় শুরু করলে বার্তাটি দ্বিতীয়বার পাঠানো হবে না।

অপেক্ষা সম্পর্কে: দুই দিন ধরে অপেক্ষায় থাকা একটি রান মানে রানের ওপর একটি wake_at, কোনো কিউতে বসে থাকা জব নয়। এ কারণেই একটি ওয়ার্কফ্লো তিন সপ্তাহের অপেক্ষায় এক লক্ষ রান ধরে রাখতে পারে কোনো খরচ ছাড়াই, এবং এ কারণেই বর্তমানে কত রান অপেক্ষায় আছে তা নিয়ে আপনাকে ভাবতে হয় না।

যে রান সম্পর্কে আপনি কখনো ভাবেন না, সেটিই সফল হয়েছে।