Hyperlane-ലെ Prologue, Epilogue Macros

Middleware ആണ് Hyperlane-ൽ റിക്വസ്റ്റ് പ്രോസസ്സിംഗിന്റെ നട്ടെല്ല്. മിക്ക ആളുകളും സ്റ്റാൻഡേർഡ് റിക്വസ്റ്റ്, റെസ്പോൺസ് മിഡിൽവെയറുകളാണ് ഉപയോഗിക്കുന്നത്. എന്നാൽ, കൂടുതൽ നിയന്ത്രണത്തിനായി Hyperlane പ്രത്യേക prologue, epilogue macros വാഗ്ദാനം ചെയ്യുന്നു.

ഈ macros റിക്വസ്റ്റ് ലൈഫ്സൈക്കിളിന്റെ തുടക്കത്തിലും അവസാനത്തിലും പ്രവർത്തിക്കുന്നു. ഡാറ്റ കൃത്യമായി എപ്പോൾ ക്ലയന്റിലേക്ക് എത്തണം എന്ന് നിയന്ത്രിക്കാൻ ഇവ നിങ്ങളെ അനുവദിക്കുന്നു.

റിക്വസ്റ്റ് ലൈഫ്സൈക്കിൾ:

• റിക്വസ്റ്റ് എത്തുന്നു: സെർവർ HTTP റിക്വസ്റ്റ് സ്വീകരിക്കുന്നു. • Prologue ഘട്ടം: ഹെഡറുകൾ അല്ലെങ്കിൽ സ്റ്റാറ്റസ് കോഡുകൾ പോലുള്ള പ്രാരംഭ ഡാറ്റ നിങ്ങൾ അയക്കുന്നു. • Middleware ചെയിൻ: ഫംഗ്ഷനുകൾ റിക്വസ്റ്റ് പ്രോസസ്സ് ചെയ്യുന്നു. • Route handler: സിസ്റ്റം റെസ്പോൺസ് തയ്യാറാക്കുന്നു. • Response middleware: ഫംഗ്ഷനുകൾ റെസ്പോൺസ് പ്രോസസ്സ് ചെയ്യുന്നു. • Epilogue ഘട്ടം: അവസാന ഡാറ്റ ക്ലയന്റിലേക്ക് ഫ്ലഷ് ചെയ്യുകയും കണക്ഷനുകൾ ക്ലോസ് ചെയ്യുകയും ചെയ്യുന്നു.

ഘട്ടം 2, 6 എന്നിവ നിയന്ത്രിക്കാൻ ഈ macros ഉപയോഗിക്കുക.

Send Macros:

അത്ര പ്രധാനമല്ലാത്ത (non-critical) ഡാറ്റയ്ക്കായി #[try_send] ഉപയോഗിക്കുക. ഒരു കണക്ഷൻ തകർന്നാൽ, സിസ്റ്റം ക്രാഷ് ചെയ്യാതെ തന്നെ ഇത് എറർ കൈകാര്യം ചെയ്യും. ഒരു ചങ്ക് (chunk) നഷ്ടപ്പെട്ടാലും കുഴപ്പമില്ലാത്ത സ്ട്രീമിംഗിന് (streaming) ഇത് അനുയോജ്യമാണ്.

നിർണ്ണായകമായ (critical) ഡാറ്റയ്ക്കായി #[send] ഉപയോഗിക്കുക. ഡാറ്റ കൃത്യമായി ലഭിക്കുന്നുണ്ടെന്ന് ഇത് ഉറപ്പാക്കുന്നു.

Flush Macros:

ബഫർ ക്ലിയർ ചെയ്യാൻ ശ്രമിക്കാനും എററുകൾ സുഗമമായി കൈകാര്യം ചെയ്യാനും #[try_flush] ഉപയോഗിക്കുക.

ബഫറിലുള്ള എല്ലാ ഡാറ്റയും നിർബന്ധമായും ക്ലയന്റിലേക്ക് അയക്കാൻ #[flush] ഉപയോഗിക്കുക. ഒരു കണക്ഷൻ ക്ലോസ് ചെയ്യുന്നതിന് മുമ്പ് ഡാറ്റ നഷ്ടപ്പെടുന്നത് ഒഴിവാക്കാൻ ഇത് ഉപയോഗിക്കുക.

മികച്ച രീതികൾ (Best Practices):

  • തകരാറിലായ കണക്ഷനുകളിൽ ക്രാഷ് ഒഴിവാക്കാൻ സ്ട്രീമിംഗ് ഡാറ്റയ്ക്കായി #[try_send] ഉപയോഗിക്കുക.
  • ഡാറ്റ ഡെലിവറി നിർബന്ധമാണെങ്കിൽ #[send] ഉപയോഗിക്കുക.
  • ഒരു കണക്ഷൻ ക്ലോസ് ചെയ്യുന്നതിന് മുമ്പ് എപ്പോഴും ബഫർ ഫ്ലഷ് (flush) ചെയ്യുക.
  • കണക്ഷൻ വീണ്ടും ഉപയോഗിക്കുന്നത് (reuse) നിയന്ത്രിക്കാൻ നിങ്ങളുടെ epilogue-ൽ stream.is_keep_alive() പരിശോധിക്കുക.
  • റിയൽ-ടൈം അപ്‌ഡേറ്റുകൾ നൽകുന്നതിനായി Server-Sent Events (SSE)-ന് ഈ macros ഉപയോഗിക്കുക.
  • സിസ്റ്റം പരാജയങ്ങൾ ഒഴിവാക്കാൻ എല്ലാ send, flush എററുകളും കൈകാര്യം ചെയ്യുക.

ഡാറ്റാ ഫ്ലോയുടെയും റെസ്പോൺസ് സമയത്തിന്റെയും മേൽ കൃത്യമായ നിയന്ത്രണം നൽകാൻ ഈ ടൂളുകൾ നിങ്ങളെ സഹായിക്കുന്നു.

സ്രോതസ്സ്: https://dev.to/tengxgfyrz67s/prologue-and-epilogue-macros-1n29 പ്രോജക്റ്റ് കോഡ്: https://github.com/hyperlane-dev/hyperlane