castomFLOW
castomFLOW کھولیں

جن رنز پر آپ بھروسہ کر سکتے ہیں

کوئی آٹومیشن پر توجہ نہیں دیتا جب تک وہ کچھ دو بار نہ بھیج دے

پھر سب توجہ دیتے ہیں۔ اس صفحے کے چار طریقے کار اسی لیے موجود ہیں کہ ایسے سافٹ ویئر کی ناکامیاں ہمیشہ وہی چار ناکامیاں ہوتی ہیں، اور ان سب سے بچاؤ احتیاط کے نہیں، ڈیزائن کے ذریعے ممکن ہے۔

شائع کرنے سے پہلے سیمولیشن چلائیں

بند پڑے ورک فلو میں ایک حقیقی ریکارڈ ڈالیں، اور واپس پڑھیں بالکل وہ جو ہوتا: کون سا راستہ لیا گیا، ہر قدم پر ہر قیمت، ہر پیغام کے الفاظ، اور وہ درخواست جو ہر بیرونی نظام کو جاتی۔

کچھ بھی باہر نہیں جاتا۔ نہ کوئی ای میل بھیجی جاتی ہے، نہ انوائس بنتی ہے، نہ کوئی وصولی کی کوشش ہوتی ہے، نہ کوئی قطار لکھی جاتی ہے۔ بیرونی کالز ارادوں کے طور پر درج ہوتی ہیں، بھیجنے والا پے لوڈ سمیت، تاکہ آپ دیکھ لیں کہ میپنگ درست ہے یا نہیں، اس سے پہلے کہ وہ کسی کا مسئلہ بن جائے۔

سملیشن اسی سوال کا جواب ہے جو لوگوں کو آٹومیشن آن کرنے سے روکتا ہے: یہ دراصل کیا کرے گا؟

سملیشن · آرڈر 88 214کچھ نہیں بھیجا گیا
  • 1پتہ کی تصدیق کریںمطابقت ہو گئی۔ 6 فیلڈز لکھے ہوتے۔
  • ?شرط1,000 زلوٹی سے زیادہ کا آرڈر؟ نہیں — 289.00 زلوٹی۔ مختصر راستہ اپنایا گیا۔
  • 3انوائسانوائسنگ سسٹم کو POST کرتے۔ پے لوڈ مکمل دکھایا گیا ہے۔
  • !یہاں پکڑا گیاوی اے ٹی کی شرح غلط فیلڈ سے میپ ہوئی۔ اکاؤنٹنٹ کے ان باکس کے بجائے ایک سمولیشن میں پائی گئی۔

بھیجا گیا: کچھ نہیںوصول کیا گیا: کچھ نہیں

ہر رن اُسی ورژن پر چلتا ہے جس پر وہ داخل ہوا تھا

ورک فلو میں کسی تبدیلی کی اشاعت پہلے سے جاری رنز کو متاثر نہیں کرتی۔ ہر رن اُسی ورژن سے منسلک ہوتا ہے جس پر وہ شروع ہوا تھا، اور اُسی ورژن پر مکمل ہوتا ہے، خواہ اسے کتنا ہی وقت لگے اور آپ اِدھر اُدھر کتنی ہی ترمیم کر دیں۔

اس طرح آپ ایسے وقت بھی ورک فلو کی ساخت بدل سکتے ہیں جب دس ہزار لوگ اس کے درمیان میں ہوں، اور ہر ایک اُسی فلو کو مکمل کرتا ہے جس کا اسے وعدہ دیا گیا تھا۔ متبادل — وہ ڈیزائن جس میں پورا نیچے کا راستہ داخل ہوتے ہی بنایا جاتا ہے — اُسی وجہ سے زیادہ تر ٹولز میں چلتی آٹومیشن میں ترمیم خطرناک محسوس ہوتی ہے۔ یہاں یہ ایک عام بات ہے۔

نئے رنز کو آپ کی اشاعت کے لمحے سے نیا ورژن ملتا ہے۔ کوئی رن کس ورژن پر ہے، یہ اُسی رن پر لکھا ہوتا ہے، اس لیے مارچ کے رویے کا سوال ستمبر میں بھی جواب رکھتا ہے۔

چلتے پھرتے ترمیمv4 → v5
  • 1پہلے2,918 رنز جاری ہیں، سب v4 پر۔ کچھ دو دن کے انتظار میں۔
  • 2v5 شائع کریںدو مراحل کی ترتیب بدلی، ایک پیغام دوبارہ لکھا گیا۔
  • 3بعدوہ 2,918 رنز v4 پر مکمل ہوں گے۔ 11:40 سے شروع ہونے والا ہر چیز v5 پر چلے گا۔
  • §کسی کو نہیںایک ورک فلو کا آدھا اور دوسرے کا آدھا ملا۔

ہر رن پر ورژن درجپرانے ورژن محفوظ

دوبارہ بھیجنے سے بچنے والی دوبارہ کوششیں

ہر مرحلہ اپنے ان پٹس کا خالص فنکشن ہے، اور اس کے اثرات رن کی اگلے مرحلے کی پیش قدمی کے ساتھ ایک ساتھ کمٹ ہوتے ہیں۔ کوئی ایسی گھڑی نہیں جب پیغام جا چکا ہو مگر رن کو اس کی خبر نہ ہو۔

یہی پوری ترکیب ہے، اور یہ ایک وعدہ نہیں بلکہ ساختی خاصیت ہے۔ مرحلے کے درمیان مارا گیا ورکر — ایک ڈیپلائے، ایک کریش، غائب ہو جانے والی مشین — رن کو بالکل وہیں چھوڑ دیتا ہے جہاں وہ تھا۔ دوسرا ورکر اسے اٹھاتا ہے اور مرحلہ دوبارہ چلاتا ہے۔ چونکہ اثر اور پیش قدمی ایک ساتھ کمٹ ہوتے ہیں، یا تو دونوں ہوئے یا دونوں نہیں ہوئے۔

اُن سسٹمز کو بھیجی جانے والی کالز جو آئیڈیمپوٹنسی کیز کی حمایت کرتی ہیں، ایک کی ساتھ لے جاتی ہیں، جو رن اور مرحلے سے اخذ کی جاتی ہے، تاکہ دوسری طرف بھی دہرائے جانے کو پہچان سکے۔

بھیجنے کے درمیان ورکر مارا گیابحال ہو گیا
  • 1مرحلہ 5 شروع ہوتا ہےشپنگ نوٹس بھیجیں۔
  • ✕ورکر مر گیاڈیپلائے۔ کچھ بھی کمٹ نہیں ہوا تھا۔
  • 2دوبارہ اٹھایا گیادوسرا ورکر رن کو اب بھی مرحلہ 5 پر پاتا ہے۔
  • ✓ایک بار بھیجا گیاگاہک کو ایک ای میل ملی، دو نہیں۔

اثرات پیش قدمی کے ساتھ کمٹ ہوتے ہیںہر رن اور مرحلے کے لیے آئیڈیمپوٹنسی کی

ایسا لاگ جو انسان کے پڑھنے کے لیے لکھا گیا ہو

ہر رن، ہر مرحلہ، اپنایا گیا شاخ اور وہ قیمت جس نے فیصلہ کیا۔ ہر مرحلے کے اوقات۔ ہر بیرونی کال کی درخواست اور جواب، اسناد چھپا کر۔ وہ ورژن جس پر رن تھا۔ رن کہاں انتظار میں ہے اور کب تک۔

جب کوئی پوچھے کہ چودہ تاریخ کو دی گئی آرڈر کا کیا بنا، تو جواب موجود ہوتا ہے، اور اسے تلاش کرنے میں ایک منٹ لگتا ہے، تین نظاموں کے لاگز کو ملانے کی ایک دوپہر نہیں۔

ناکام ہونے والے رنز ایک جگہ جمع ہوتے ہیں اور وجہ گروپ کی ہوتی ہے، اس لیے ”رات بھر میں اکتالیس ناکامیاں“ کا حل نکلتا ہے ”ایک فراہم کنندہ نے نو منٹ تک 503 لوٹایا“، نہ کہ اکتالیس الگ الگ تفتیشیں۔

رات بھر، گروپ شدہ41 ناکامیاں
  • 1ایک وجہفراہم کنندہ کی API نے 02:41 سے 02:50 تک 503 لوٹایا۔
  • 2کیا ہواتمام 41 کو دوبارہ کوشش دی گئی؛ 39 دوسری کوشش میں کامیاب ہوئے۔
  • 3باقی رہ گئےدو رک گئے اور کسی شخص کے انتظار میں ہیں۔ دونوں ناکام شدہ قطار کے ساتھ فہرست میں ہیں۔
  • §اکتالیس نہیںتفتیشیں۔ ایک، اور دو ریکارڈز کے بارے میں ایک فیصلہ۔

اسناد چھان لی گئیںورژن درج ہے

جو ہم دعویٰ نہیں کرتے

ہم مارکیٹنگ صفحے پر اپ ٹائم کا کوئی عدد شائع نہیں کرتے، کیونکہ بغیر پیمائش کی مدت اور ”چالو“ کی تعریف کے کوئی عدد صرف سجاوٹ ہے۔ اگر آپ کو اس کی معاوضاتی ضرورت ہو، تو پوچھیں اور ہم بات کریں گے کہ ہم اصل میں کس چیز کا عہد کر سکتے ہیں۔

ہم کسی اور کی API کو بھی قابلِ اعتماد نہیں بنا سکتے۔ اگر کوئی فراہم کنندہ بند ہو، تو اس پر منحصر ورک فلو انتظار کرتا ہے، دوبارہ کوشش کرتا ہے، اور آخر میں واضح وجہ کے ساتھ رک جاتا ہے۔ جس چیز کا ہم وعدہ کر سکتے ہیں وہ یہ ہے کہ ناکامی نظر آتی ہے، کچھ خراب نہیں ہوتا، اور دوبارہ شروع کرنے پر پیغام دوسری بار نہیں بھیجا جاتا۔

انتظار کے بارے میں: دو دن انتظار کرتا رنز اس رنز پر ایک wake_at ہوتا ہے، قطار میں بیٹھی کوئی جاب نہیں۔ اسی لیے ایک ورک فلو تین ہفتے کے انتظار میں ایک لاکھ رنز ایسے رکھ سکتا ہے جن کی کوئی لاگت نہیں، اور اسی لیے اس وقت انتظار کر رہے رنز کی تعداد پر آپ کو سوچنے کی ضرورت نہیں۔

وہ رنز جس پر آپ کبھی غور نہیں کرتے، وہی کامیاب ہوا کرتا ہے۔