آپ کی publish شدہ app اب دوبارہ publish کرتے ہوئے بھی چلتی رہتی ہے
جب آپ Mythex پر کوئی app دوبارہ publish کرتے ہیں تو آپ کی لائیو سائٹ نیا build تیار ہونے تک پچھلا ورژن چلاتی رہتی ہے، پھر نئے پر منتقل ہو جاتی ہے۔ اس تبدیلی سے پہلے، دوبارہ publish کرنے سے پوری build کے دوران سائٹ بند ہو جاتی تھی: visitors کو “This published app is offline or the link was not found” نظر آتا تھا، تقریباً ایک منٹ تک، اور پھر reload کرنے پر وہی صفحہ دوبارہ کام کرتا۔ ہم نے ایسے دو اور طریقے بھی ٹھیک کیے جن سے کوئی live app غلطی سے offline دکھتی تھی۔
1. دوبارہ publish کرنے سے آپ کی سائٹ بند نہیں ہوتی
پسِ منظر میں ہر publish شدہ app کا ایک ریکارڈ ہوتا ہے جو بتاتا ہے کہ کون سا build پیش کرنا ہے۔ دوبارہ publish اسی ریکارڈ کو استعمال کرتا اور اسے build کی مدت کے لیے “building” نشان زد کر دیتا، اور ہمارے edge کا وہ حصہ جو visitors کو راستہ دیتا ہے صرف وہ ریکارڈ پیش کرتا تھا جو “live” نشان زد ہوں۔ اس لیے ہر دوبارہ publish پر سائٹ build مکمل ہونے تک غائب ہو جاتی تھی۔ ہم نے اسے ایک چھوٹی ٹیسٹ app پر دوبارہ پیدا کیا: ہر دوبارہ publish پر تقریباً 50 سیکنڈ کا بندش۔
اب، جب کسی پہلے سے live app پر دوبارہ publish شروع ہوتا ہے، تو ریکارڈ یاد رکھتا ہے کہ ایک پچھلا build موجود ہے اور اسی کی طرف اشارہ کرتا رہتا ہے۔ edge نئے build کے بننے کے دوران پچھلا build پیش کرتا ہے، اور اشارہ صرف اس وقت نئے build کی طرف جاتا ہے جب وہ کامیاب ہو۔ اگر نیا build ناکام ہو جائے تو آپ کے visitors کو کبھی پتا نہیں چلتا؛ پرانا ورژن بس چلتا رہتا ہے۔
پہلی publish، یا کسی ایسی app کو دوبارہ publish کرنا جو روکی یا unpublish کی گئی ہو، اب بھی صرف build مکمل ہونے پر live ہوتی ہے، کیونکہ وہاں دکھانے کے لیے کوئی پچھلا ورژن نہیں ہوتا۔
2. ایک عارضی رکاوٹ “not found” نہیں لگتی
آپ کی publish شدہ app کے سامنے والی سروس API سے پوچھتی ہے کہ ہر سائٹ کہاں ہے۔ پہلے یہ ہر ناکام جواب کو، یعنی ایک لمحاتی سرور خرابی یا ٹوٹے کنکشن کو، “یہ سائٹ موجود نہیں” سمجھتی تھی، اور offline صفحہ دکھاتی تھی۔ ایک سیکنڈ بعد reload کرنے پر وہ کام کرتی، جس سے یہ الجھن پیدا ہوتی تھی۔
اب صرف ایک حقیقی “not found” جواب کو not found شمار کیا جاتا ہے:
- کوئی بھی دوسری ناکامی ایک بار دوبارہ کوشش کی جاتی ہے۔
- اگر پھر بھی ناکام ہو تو edge سائٹ کو آخری معلوم درست جواب سے، ایک گھنٹے تک، پیش کرتا ہے۔
- صرف اگر اسے کبھی جواب ہی نہ ملا ہو تو وہ “عارضی طور پر دستیاب نہیں” کا صفحہ دکھاتا ہے، کبھی “not found” نہیں۔
کسٹم domains بھی ہمارے production اور staging دونوں نظاموں سے متوازی پوچھتے ہیں، تاکہ ایک سست staging سرور کبھی production domain کو نہ روک سکے۔
3. روکی ہوئی app کہتی ہے کہ وہ روکی ہوئی ہے
پبلش شدہ apps آپ کے کریڈٹ بیلنس پر چلتی ہیں۔ اگر وہ ختم ہو جائے تو app آپ کے بیلنس بھرنے تک روک دی جاتی ہے، اور بھرنے پر خود بخود واپس آ جاتی ہے۔ مگر ایک روکی ہوئی app بالکل ایک حذف شدہ app جیسی لگتی تھی۔
اب روکی ہوئی app کے visitor کو “This app is paused” نظر آتا ہے، جس کے ساتھ مالک کے لیے واپسی کا راستہ ہوتا ہے، اور جواب کبھی cache نہیں ہوتا، اس لیے app دوبارہ شروع ہوتے ہی قابلِ رسائی ہو جاتی ہے۔ اگر کوئی app کسی دوسری وجہ سے دستیاب نہ ہو تو visitors کو “This app isn't available” نظر آتا ہے، اور انہیں وجہ نہیں بتائی جاتی۔
یہ کیوں اہم ہے
ایک publish شدہ app وہ چیز ہے جو آپ نے شیئر کی ہے: bio link میں، کاروباری کارڈ پر، اپنے پہلے گاہکوں کے ساتھ۔ اسے ایک حقیقی ویب سائٹ کی طرح برتاؤ کرنا چاہیے: آپ اسے بہتر بناتے رہیں تو بھی چلتی رہے، ایک لمحاتی خرابی سے بچ جائے، اور روکی جائے تو ایمانداری سے بتائے۔
publishing کے بارے میں مزید docs میں: publish کیسے کریں اور hosting حدیں۔ اور اسی خیال کا infrastructure والا پہلو: ہم اپنے deploys کو صفر 502s تک کیسے لائے۔