Hyperlane मधील 𝗣𝗿𝗼𝗹𝗼𝗴𝘂𝗲 𝗮𝗻𝗱 𝗘𝗽𝗶𝗹𝗼𝗴𝘂𝗲 𝗠𝗮𝗰𝗿𝗼𝘀
Middleware हे Hyperlane मधील request processing चा कणा आहे. बहुतेक लोक standard request आणि response middleware वापरतात. तथापि, Hyperlane अधिक नियंत्रणासाठी विशेष prologue आणि epilogue macros प्रदान करते.
हे macros request lifecycle च्या अगदी सुरुवातीला आणि अगदी शेवटी चालतात. डेटा क्लायंटपर्यंत नेमका कधी पोहोचतो, यावर नियंत्रण ठेवण्याची परवानगी ते तुम्हाला देतात.
The Request Lifecycle:
• Request येते: सर्व्हर HTTP request प्राप्त करतो. • Prologue phase: तुम्ही headers किंवा status codes सारखा सुरुवातीचा डेटा पाठवता. • Middleware chain: Functions request प्रोसेस करतात. • Route handler: सिस्टम response तयार करते. • Response middleware: Functions response प्रोसेस करतात. • Epilogue phase: अंतिम डेटा क्लायंटकडे flush केला जातो आणि connections बंद होतात.
पायरी २ आणि ६ व्यवस्थापित करण्यासाठी हे macros वापरा.
The Send Macros:
Non-critical डेटासाठी #[try_send] वापरा. जर कनेक्शन तुटले, तर ते क्रॅश न होता त्रुटी (error) हाताळते. स्ट्रीमिंगसाठी हे चांगले आहे जिथे एक chunk गमावणे ठीक आहे.
Critical डेटासाठी #[send] वापरा. यामुळे डेटा नक्कीच पोहोचेल याची खात्री मिळते.
The Flush Macros:
Buffer clear करण्याचा प्रयत्न करण्यासाठी आणि त्रुटी (errors) सुलभपणे हाताळण्यासाठी #[try_flush] वापरा.
सर्व buffered डेटा क्लायंटकडे पाठवण्यासाठी (force) #[flush] वापरा. कनेक्शन बंद करण्यापूर्वी डेटा गमावणे टाळण्यासाठी याचा वापर करा.
Best Practices:
- तुटलेल्या connections वर क्रॅश टाळण्यासाठी स्ट्रीमिंग डेटासाठी #[try_send] वापरा.
- जेव्हा डेटा डिलिव्हरी अनिवार्य असते तेव्हा #[send] वापरा.
- कनेक्शन बंद करण्यापूर्वी नेहमी तुमचा buffer flush करा.
- Connection reuse व्यवस्थापित करण्यासाठी तुमच्या epilogue मध्ये stream.is_keep_alive() तपासा.
- Real-time updates पाठवण्यासाठी Server-Sent Events (SSE) साठी हे macros वापरा.
- सिस्टम फेल्युअर टाळण्यासाठी सर्व send आणि flush त्रुटी हाताळा.
ही साधने तुम्हाला डेटा फ्लो आणि response timing वर अचूक नियंत्रण देतात.
Source: https://dev.to/tengxgfyrz67s/prologue-and-epilogue-macros-1n29 Project Code: https://github.com/hyperlane-dev/hyperlane