Bir necha hafta davomida mashaqqat bilan yaratgan SSE (Server-Sent Events) joriy etilishini olib tashladim. SSE’ni birinchi bo‘lib taklif qilgan va uni joriy etishni boshlagan ham men edim; muhokamadan so‘ng oxir-oqibat uni olib tashlashimiz kerak degan qarorga kelgan ham men bo‘ldim.
Men bilan birga ishlagan jamoadoshim avvalgi maqolada SSE’ni joriy etish va keyin polling’ga o‘tish bilan bog‘liq texnik qarorlarni umumlashtirdi.
Ushbu maqola shu qarorga olib kelgan jarayonni kuzatadi va AI bilan birga tezda to‘liq javobga kelish davomida sikldan tashqarida nimalar zarur bo‘lganini ko‘rib chiqadi.
AI berilgan muammoni tezda hal qiladi
Qra — ilovalarni Vizend’da joylashtiradigan va ularning holatini ko‘rsatadigan xizmat. Joylashtirish bir necha o‘n soniyadan bir necha daqiqagacha vaqt oladi. Menga berilgan vazifa foydalanuvchilarga joylashtirish jarayonini bosqichma-bosqich tekshirish imkonini beradigan funksiyani taqdim etish edi. SSE yordamida uzoq davom etadigan asinxron vazifaning jarayonini vizuallashtirgan boshqa loyihadagi tajribamni eslab, bu muammoni ham SSE bilan hal qila olishimni tabiiy ravishda o‘yladim va shu yo‘nalishda ish boshladim.
O‘sha paytda jamoamiz SSE’ni joriy etish, tekshirish va o‘zgartirish jarayonida ish oqimini takomillashtirish uchun AI agenti bilan hamkorlik qilardi. Resurs muammolaridan tortib frontend kutubxonasini tanlashgacha bo‘lgan ketma-ket muammolarni hal qilishimizga to‘g‘ri kelgan bo‘lsa-da, SSE joriy etilishi katta qiyinchiliksiz staging muhitiga yetib bordi. SSE o‘z o‘rniga yaxshi tushayotgandek tuyuldi.

Joriy etish va tekshirishni takrorlaganimiz sari SSE asta-sekin barqarorlashdi.
Muammoni hal qilish dastlabki qaror to‘g‘ri bo‘lganini isbotlamaydi
Keyin, Vizend platformasini navbatdagi muntazam ko‘rib chiqishga tayyorgarlik ko‘rayotib, ishlab chiqarish muhitiga qo‘yiladigan talablarni yana bir bor ko‘rib chiqdik va boshidanoq yodda tutib kelgan stateless arxitektura hamda gorizontal masshtablash talablariga yana katta ahamiyat berdik. Qra’da joylashtirish holatidagi o‘zgarishni aniqlagan instansiya SSE orqali foydalanuvchiga ulangan instansiyadan farq qilishi mumkin edi, shuning uchun ma’lumotni darhol yetkazish uchun alohida relay yo‘li kerak bo‘lardi. Biroq Qra muayyan infratuzilmaga bog‘langan loyiha emas, balki bir nechta muhitni qo‘llab-quvvatlaydigan platforma xizmati edi.
Qra’ning boshidanoq talabi ‘foydalanuvchilarga tekshirish uchun joylashtirish jarayonini shunday qilib, ular ko‘ra olishlari’ edi, ‘uniorqali SSE real vaqtda yetkazish’ emas. Ammo SSE’ni yo‘nalishimiz sifatida tanlaganimizdan so‘ng, men bu yondashuvni qanday qilib ishonchliroq joriy etishga e’tibor qaratdim va tanlovning o‘zini qayta ko‘rib chiqishni o‘ylamadim.
Ushbu talab nuqtayi nazaridan qaralganda, polling ekranning kechikib yangilanishi va so‘rovlar sonining ko‘payishi evaziga amalga oshadi. Biroq bu ekranning asosiy maqsadi foydalanuvchilarga joylashtirish qanchalik ilgarilaganini va agar muvaffaqiyatsiz bo‘lgan bo‘lsa, qachon hamda nima sababdan muvaffaqiyatsiz bo‘lganini ko‘rsatish edi. Ekranning bir necha soniya kechikib yangilanishi joylashtirishning o‘ziga yoki foydalanuvchining keyingi harakatiga sezilarli ta’sir ko‘rsatmagani uchun, Qra bu xarajatni ko‘tara oladi, deb baholadik.
Bundan tashqari, bitta ekranni darhol yangilash uchungina relay yo‘li, ulanishlarni boshqarish va backend hamda frontend uchun umumiy qoidalarni yangidan belgilash ortiqcha, deb o‘yladim. Jamoadoshim, infratuzilma jamoasi va Vizend platformasi jamoasi bilan masalani muhokama qilganimizdan so‘ng, platforma miqyosidagi SSE standartlarini backlog’da qoldirdik va SSE’ni Qra’dan olib tashladik.
Bu qarorga kelish yo‘lida turli darajalarga tegishli ikkita savol paydo bo‘ldi. ‘SSE yaxshi ishlaydimi?’ — AI ijro sikli orqali yetarlicha tekshira olgan savolimiz edi. Ammo ‘Qra ushbu operatsion mas’uliyatni o‘z zimmasiga olishi uchun tezkorlik yetarlicha muhimmi?’ — joriy etish natijasi qanchalik yaxshi bo‘lmasin, o‘sha sikl doirasida javob berib bo‘lmaydigan savol edi.
Retrospektiva davomida tashkiliy ta’lim nazariyasidagi Single Loop va Double Loop tushunchalariga duch kelganimda, bu farq yanada ravshanlashdi. Single Loopberilgan maqsad doirasidagi xatolarni tuzatadi, Double Loop esa maqsad va uning taxminlarini boshidan boshlab qayta ko‘rib chiqadi. Men bir necha hafta davomida qilgan ishim SSE’ning to‘liqligini yaxshilash sikli edi. Ammo bir qadam chetga chiqib qaraganimda, yana bir savol ochiq qolganini ko‘rdim: Qra uchun SSE’ning o‘zi zarur edimi?
Nimaga ustuvorlik berishni his qilish
Yangi muammoga duch kelganimizda, qo‘limizdagi muammoga o‘xshash jihatlarni topish uchun avvalgi tajribalarimiz va bilimlarimizni abstraksiyalaymiz. Biroq shundan so‘ng aniqlik darajasini yana oshirib, o‘tmishdagi va hozirgi vaziyatlar o‘rtasidagi farqlarni ko‘rib chiqishimiz kerak.
Avvalgi loyihada men rahbar sifatida aniq belgilangan muhitga mos standartlarni o‘rnatish va ularni ilgari surish imkoniga ega edim. Ammo bir nechta muhit va jamoalarni hisobga olishi kerak bo‘lgan platformaning bir qismi bo‘lgan Qra’da bu standartlarni faqat o‘z qarorimga asoslanib o‘rnata olmasdim. Men bu farqni qaror qabul qilish jarayonimda yetarlicha oldingi o‘ringa qo‘ymadim.
Biror yondashuv bir marta yaxshi samara berganida, bu safar ham to‘g‘ri bo‘lishiga ishonchimiz ortishi mumkin. Bu ishonch qanchalik kuchli bo‘lsa, hozirgi vaziyatdagi farqlarni yuqori aniqlikda yana bir bor ko‘rib chiqish zaruratini payqamay qolish shunchalik oson bo‘ladi.
Abstraksiyalash orqali o‘xshashliklarni topib, farqlarni yuqori aniqlikda ko‘rib chiqqanimizdan so‘ng, nimaga ustuvorlik berishni hal qilishimiz kerak. Shu bosqichda bir nechta omilning nisbiy salmog‘ini baholash qobiliyatini men Taste’ning bir turi deb bilaman. Bu yerdagi Taste’ni faqat did yoki farqlash qobiliyati sifatida tushuntirish qiyin.
Bu tuyg‘u haqida Andrew Ng odamlar Taste deb ataydigan insoniy hissani kontekstual ustunlik sifatida ta’riflagan. Boshqacha aytganda, mahsulot va uning foydalanuvchilariga yaqin joyda to‘plangan ma’lumot hamda tajriba yangi qarorlar qabul qilish uchun materialga aylanadi.
Faqat hujjatlar va fikr-mulohazalardan foydalanib, qaror chiqarish uchun zarur bo‘lgan barcha materialni oldindan qamrab olish qiyin. Ish jarayoni davomida yangi kontekst paydo bo‘lishi mumkin, shuningdek, bir xil faktlarni ko‘rib chiqishda ham nimani muhimroq deb hisoblash kerakligi o‘sha vaziyatdagi maqsad, rol va mas’uliyatga qarab o‘zgarishi mumkin.
Qra’da o‘zgargan narsa qaror chiqarish uchun material emas, balki o‘sha materialga berilgan urg‘u edi.
Mulohazani tanlovga aylantirish kuchi
AI men tanlagan javobni qanchalik tez tayyorlagan bo‘lsa, dastlabki savolni tekshirish shunchalik chetga surildi. SSE to‘g‘ri ishlagan- ishlamaganini ijro sikli orqali tezda tekshirish mumkin edi, biroq ushbu yondashuvdan foydalanishni davom ettirish kerakmi yoki yo‘qmi, degan savol sikldan tashqarida berilishi kerak edi.

Mezonlarga rioya qilinayotganini sikl ichida tekshirish mumkin, biroq ushbu mezonlarni qo‘llashda davom etish kerakmi yoki yo‘qmi, degan masalani sikldan tashqarida qayta ko‘rib chiqish lozim.
Ish davom etayotgan paytda ham odamlar o‘zlarining dastlabki qarori hozirgi maqsad va rolga hanuz mos keladimi, deb so‘rashda davom etishlari kerak. Shunga asoslanib, ular joriy yondashuvni davom ettirish, unga tuzatish kiritish yoki uni o‘zgartirish haqida qaror qabul qilishlari lozim.
Inson agentligi ijro tezligini oshirishda emas, balki allaqachon tanlangan javobni qayta ko‘rib chiqish va uning uchun mas’uliyatni o‘z zimmasiga olishda namoyon bo‘ladi.
Manbalar
- HKK, Real vaqt imkoniyatini ta’minlash: SSE’ni joriy etishdan Polling’ga qaytishgacha (Nextree, 2026-05-07)
- Andrew Ng, The Batch 359-son (2026-06-26)
- Chris Argyris, Tashkilotlarda ikki siklli o‘rganish (Harvard Business Review, 1977-09)
TaeZ