2026 ജൂലൈ 28-ന് MCP പ്രോട്ടോക്കോൾ ടീം ഒരു പുതിയ പതിപ്പ് പുറത്തിറക്കി. ഇത് പ്രോട്ടോക്കോൾ തലത്തിലുള്ള സെഷൻ (session) ഒഴിവാക്കുകയും ഓരോ അഭ്യർത്ഥനയും (request) സ്റ്റേറ്റ്ലെസ്സ് (stateless) ആയിരിക്കാൻ നിർബന്ധമാക്കുകയും ചെയ്യുന്നു. നിങ്ങൾ MCP ക്ലയന്റുകൾ, സെർവറുകൾ അല്ലെങ്കിൽ ഏജന്റുകൾ ഉപയോഗിക്കുന്നുണ്ടെങ്കിൽ, പെർസിസ്റ്റന്റ് സെഷൻ ഐഡി (persistent session ID) ഉണ്ടെന്ന് കരുതുന്ന കോഡുകൾ നിങ്ങൾ മാറ്റിയെഴുതണം—അല്ലെങ്കിൽ റൂട്ടിംഗ് തകരാറുകൾ, കാഷെ മിസ്സുകൾ (cache misses), നിയന്ത്രണാതീതമായ ബാക്ക്ഗ്രൗണ്ട് ജോലികൾ എന്നിവ നേരിടേണ്ടി വരും.
ഈ മാറ്റം പ്രധാനമായിരിക്കുന്നത് എന്തുകൊണ്ട്
മുമ്പ് MCP ഒരു സെഷൻ ഐഡന്റിഫയർ (session identifier) നൽകുന്ന ഹാൻഡ്ഷേക്ക് (handshake) ആവശ്യപ്പെട്ടിരുന്നു. ഡൗൺസ്ട്രീം സേവനങ്ങൾ ആ ഐഡി ഉപയോഗിച്ചാണ് ഒരു കൂട്ടം അഭ്യർത്ഥനകൾ ഒരേ പ്രോസസ്സിൽ തന്നെ എത്തുമെന്ന് ഉറപ്പാക്കിയിരുന്നത്, ലോഡ് ബാലൻസറുകളെ സ്റ്റിക്കി റൂട്ടിംഗിനായി (sticky routing) ഉപയോഗിച്ചിരുന്നു, കൂടാതെ സെഷൻ അനുസരിച്ചുള്ള ഡാറ്റ മെമ്മറിയിൽ സൂക്ഷിച്ചിരുന്നു. ജൂലൈയിലെ ഈ റിലീസ് ആ മാതൃകയ്ക്ക് പകരം ഒരു പ്യുവർ റിക്വസ്റ്റ്-റെസ്പോൺസ് (request-response) ഫ്ലോ കൊണ്ടുവരുന്നു. സെഷനുകൾ നഷ്ടപ്പെടുമെന്ന ആശങ്കയില്ലാതെ ഇപ്പോൾ ഒരു സെർവർ കൂട്ടിച്ചേർക്കാനോ നീക്കം ചെയ്യാനോ കഴിയും. പ്രോട്ടോക്കോൾ ഇനി കോൺടെക്സ്റ്റ് (context) നിലനിർത്തുന്നില്ല; ആപ്ലിക്കേഷൻ അത് ചെയ്യേണ്ടതുണ്ട്.
പഴയ സെഷൻ കേന്ദ്രീകൃതമായ കോഡുകൾ ഉപയോഗിക്കുന്ന ടീമുകൾക്ക് അഭ്യർത്ഥനകൾ തെറ്റായ ഇൻസ്റ്റൻസുകളിലേക്ക് പോകുന്നത്, കാഷെ മിസ്സുകൾ സംഭവിക്കുന്നത്, ബാക്ക്ഗ്രൗണ്ട് ജോലികൾ കുമിഞ്ഞുകൂടുന്നത് എന്നിവ കാണേണ്ടി വരും. സ്റ്റേറ്റ്ലെസ്സ് പാറ്റേൺ സ്വീകരിക്കുന്ന ടീമുകൾക്ക് നോൺ-സ്റ്റിക്കി ലോഡ് ബാലൻസറുകൾക്ക് പിന്നിൽ MCP പ്രവർത്തിപ്പിക്കാനും മുഴുവൻ റിക്വസ്റ്റ് ചെയിനിലും മികച്ച ഒബ്സർവബിലിറ്റി (observability) നേടാനും കഴിയും.
യഥാർത്ഥത്തിൽ എന്താണ് മാറുന്നത്
- Protocol lifecycle – ഹാൻഡ്ഷേക്കും സെഷൻ ഐഡിയും ഇല്ലാതാകുന്നു. ഓരോ അഭ്യർത്ഥനയും സെർവറിന് ആവശ്യമായ എല്ലാ വിവരങ്ങളും ഉൾക്കൊള്ളണം; അടുത്ത അഭ്യർത്ഥന അതേ പ്രോസസ്സിൽ തന്നെ എത്തും എന്നതിന് ഉറപ്പില്ല.
- HTTP routing – ഒരു അഭ്യർത്ഥന എങ്ങോട്ട് അയക്കണം എന്ന് തീരുമാനിക്കാൻ ഗേറ്റ്വേകൾ ഇപ്പോൾ
Mcp-Method,Mcp-Nameഎന്നീ രണ്ട് പുതിയ ഹെഡറുകൾ വായിക്കുന്നു. സെഷൻ-കുക്കി റൂട്ടിംഗ് ഇനി പ്രവർത്തിക്കില്ല. - Caching – റീഡുകൾക്കായി സ്പെസിഫിക്കേഷൻ
ttlMs(മില്ലിസെക്കൻഡിൽ time-to-live),cacheScopeഎന്നീ ഫീൽഡുകൾ ചേർക്കുന്നു. പഴയ ഡാറ്റ ഉപയോഗിക്കാമോ എന്ന് നിങ്ങൾ തീരുമാനിക്കുകയും അതിനനുസരിച്ച് കാഷെ ക്രമീകരിക്കുകയും ചെയ്യാം. - Observability – ഒരു
_metaബ്ലോക്ക് ഇപ്പോൾ W3C Trace Context പേലോഡ് പ്രതീക്ഷിക്കുന്നു, ഇത് ട്രേസിംഗ് സിസ്റ്റങ്ങളെ എഡ്ജ് ഗേറ്റ്വേകൾ, ടൂളിംഗ്, ബാക്കെൻഡ് ജോലികൾ എന്നിവയെ ഒരു സിംഗിൾ എൻഡ്-ടു-എൻഡ് ട്രേസായി (end-to-end trace) ബന്ധിപ്പിക്കാൻ അനുവദിക്കുന്നു. - Composition – എക്സ്റ്റൻഷനുകൾ ഔദ്യോഗികമായി രൂപപ്പെടുത്തിയിരിക്കുന്നു; കോർ സ്പെസിഫിക്കേഷനിൽ മാറ്റം വരുത്താതെ തന്നെ പുതിയ കപ്പാബിലിറ്റികൾ ചേർക്കാം, ഇത് ഒരു പ്ലഗ്-ഇൻ ശൈലിയിലുള്ള ആർക്കിടെക്ചറിനെ പ്രോത്സാഹിപ്പിക്കുന്നു.
- Long-running work – മിനിറ്റുകളോ മണിക്കൂറുകളോ എടുക്കുന്ന ജോലികൾക്ക് ലളിതമായ റിക്വസ്റ്റ്/റെസ്പോൺസ് മാത്രം മതിയാകില്ല. അസിൻക്രണസ് ജോലികൾക്കായി പ്രോട്ടോക്കോൾ ഇപ്പോൾ ലൈഫ്സൈക്കിൾ കൺട്രോളുകളോട് കൂടിയ ഒരു
Taskഒബ്ജക്റ്റ് നിർവചിക്കുന്നു.
പഴയ കോഡുകളിൽ ഒളിഞ്ഞിരിക്കുന്ന അപകടസാധ്യതകൾ
സ്റ്റേറ്റ്ഫുൾനെസ്സ് (statefulness) ഉണ്ടെന്ന് കരുതുന്ന പാറ്റേണുകൾ പലപ്പോഴും ഒരു വേഗത്തിലുള്ള ഓഡിറ്റിലൂടെ കണ്ടെത്താനാകും:
- സെഷൻ ഐഡികൾ ഉപയോഗിച്ച് കീ ചെയ്ത ഇൻ-മെമ്മറി മാപ്പുകൾ (In-memory maps).
- സ്റ്റിക്കി സെഷനുകൾക്കായി ക്രമീകരിച്ച ലോഡ് ബാലൻസറുകൾ.
- സെഷൻ അനുസരിച്ചുള്ള ഡാറ്റ ലോക്കൽ മെമ്മറിയിലേക്ക് പ്രീലോഡ് ചെയ്യുന്ന സ്റ്റാർട്ടപ്പ് റൂട്ടീനുകൾ.
- ഒരു സെഷൻ അവസാനിക്കുമ്പോൾ ബിസിനസ് ഡാറ്റ ഡിലീറ്റ് ചെയ്യുന്ന ക്ലീനപ്പ് ലോജിക്.
മൈഗ്രേഷന്റെ സമയത്ത് ഇവയിൽ ഏതെങ്കിലും നിലനിൽക്കുകയാണെങ്കിൽ, സിസ്റ്റം ഡാറ്റ നഷ്ടപ്പെടാനോ ലോഡ് കൂടുമ്പോൾ റിസോഴ്സുകൾ ചോരാനോ (leak resources) സാധ്യതയുണ്ട്.
ഒരു കൃത്യമായ മൈഗ്രേഷൻ ചെക്ക്ലിസ്റ്റ്
1. നിലവിലെ അനുമാനങ്ങൾ പരിശോധിക്കുക
നിങ്ങളുടെ കോഡ് സെഷൻ ഐഡി, സ്റ്റിക്കി-റൂട്ടിംഗ് റൂൾ, അല്ലെങ്കിൽ പ്രോസസ്സ്-ലോക്കൽ കാഷെ എന്നിവ ഉപയോഗിക്കുന്ന എല്ലാ ഇടങ്ങളും കണ്ടെത്തുക. ഓരോന്നിനെയും ഏതെല്ലാം ഘടകങ്ങളാണ് ആശ്രയിക്കുന്നത് എന്ന് രേഖപ്പെടുത്തുക.
2. ഐഡന്റിറ്റി വ്യക്തമാക്കുക
ഓരോ റിക്വസ്റ്റ് പേലോഡിലോ ഹെഡറിലോ ടെനന്റ് ഐഡികൾ (tenant IDs), റൺ ഐഡികൾ (run IDs), യൂസർ ഐഡികൾ (user IDs) എന്നിവ ചേർക്കുക. ഓതറൈസേഷനും (authorization) ഡാറ്റാ പാർട്ടിഷനിംഗിനും ഈ ഐഡന്റിഫയറുകളെ തന്നെ അടിസ്ഥാനമാക്കുക.
3. റൂട്ടിംഗ് കോൺഫിഗറേഷൻ പുതുക്കുക
സെഷൻ അടിസ്ഥാനമാക്കിയുള്ള റൂട്ടിംഗിന് പകരം Mcp-Method, Mcp-Name എന്നിവ വായിക്കുന്ന റൂളുകൾ ഉപയോഗിക്കുക. നോൺ-സ്റ്റിക്കി ലോഡ് ബാലൻസറിന് പിന്നിൽ കുറഞ്ഞത് രണ്ട് ഇൻസ്റ്റൻസുകൾ ഉപയോഗിച്ച് പുതിയ ഗേറ്റ്വേ ലോജിക് പരിശോധിക്കുക.
4. കാഷെ ലോജിക് പരിഷ്കരിക്കുക
പുതിയ ttlMs, cacheScope ഫീൽഡുകളിലേക്ക് മാറുന്നതിനായി ശ്രദ്ധിക്കുക. വ്യത്യസ്ത TTL മൂല്യങ്ങൾ ഹിറ്റ് റേറ്റുകളെയും (hit rates) ഫ്രഷ്നസ്സ് ആവശ്യകതകളെയും എങ്ങനെ ബാധിക്കുന്നു എന്ന് കാണാൻ പെർഫോമൻസ് ടെസ്റ്റുകൾ നടത്തുക.
എൻഡ്-ടു-എൻഡ് ട്രേസിംഗ് പ്രവർത്തനക്ഷമമാക്കുക: _meta ബ്ലോക്കിൽ ഒരു W3C Trace Context ഹെഡർ ചേർക്കുക. ട്രേസുകൾ എഡ്ജ് ഗേറ്റ്വേയിൽ നിന്ന് നിങ്ങളുടെ ബാക്കെൻഡ് സേവനങ്ങളിലേക്ക് തടസ്സമില്ലാതെ ഒഴുകുന്നുണ്ടെന്ന് ഉറപ്പുവരുത്തുക.
അസിൻക്രണസ് ജോലികൾക്കായി Task മോഡൽ സ്വീകരിക്കുക: ആരാണ് ഒരു ടാസ്ക് നിർമ്മിക്കാൻ കഴിയുക എന്ന് നിർവചിക്കുക, പരമാവധി റൺടൈം നിശ്ചയിക്കുക, ക്യൂ പരിധികൾ (queue limits) നടപ്പിലാക്കുക. വ്യക്തമായ ക്യാൻസലേഷൻ (cancellation), റീട്രൈ (retry) പോളിസികൾ ചേർക്കുക, കൂടാതെ ഒരു ടാസ്ക് പെൻഡിംഗ് ആയിരിക്കുമ്പോൾ ഒരു ഏജന്റിന് എന്ത് ചെയ്യാൻ കഴിയുമെന്ന് പരിമിതപ്പെടുത്തുക.
ജൂലൈ 28-ന് മുമ്പ് SDK, ക്ലയന്റ് ലൈബ്രറി റിലീസ് നോട്ടുകൾ പരിശോധിക്കുക.
പരാജയ സാധ്യതകൾ ലക്ഷ്യമിട്ടുള്ള റഗ്രഷൻ സ്യൂട്ടുകൾ (regression suites) പ്രവർത്തിപ്പിക്കുക: സാധാരണ രീതിയിലുള്ള ടെസ്റ്റുകൾക്ക് പുറമെ, മിസ്സിംഗ് ഹെഡറുകൾ, കാലാവധി കഴിഞ്ഞ ടാസ്ക്കുകൾ, തെറ്റായ കാഷെ ഡയറക്റ്റീവുകൾ എന്നിവ നൽകി പരിശോധിക്കുക. സിസ്റ്റം തകരാറുകൾക്കിടയിലും സുഗമമായി പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക.
അടുത്തതായി ശ്രദ്ധിക്കേണ്ടവ
സുരക്ഷിതമായി മൈഗ്രേറ്റ് ചെയ്യുന്ന ടീമുകൾ വെറും സാധാരണ പാതകൾ (happy path) മാത്രമല്ല, പരിധികളും (boundaries) പരിശോധിക്കും. ജൂലൈ 28-ന് ശേഷവും സെഷൻ ഐഡി പ്രതീക്ഷിക്കുന്ന ഏതൊരു പ്രൊഡക്ഷൻ ഡിപ്ലോയ്മെന്റും പുതിയ MCP സെർവറുകളുമായി പ്രവർത്തിക്കുന്നതിൽ പരാജയപ്പെട്ടേക്കാം.
