MCP ಪ್ರೊಟೊಕಾಲ್ ತಂಡವು ಜುಲೈ 28, 2026 ರಂದು ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ, ಇದು ಪ್ರೊಟೊಕಾಲ್-ಮಟ್ಟದ ಸೆಷನ್ ಅನ್ನು ಕೈಬಿಡುತ್ತದೆ ಮತ್ತು ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯನ್ನು (request) ಸ್ಟೇಟ್ಲೆಸ್ (stateless) ಆಗಿ ಮಾಡಲು ಒತ್ತಾಯಿಸುತ್ತದೆ. ನೀವು MCP ಕ್ಲೈಂಟ್ಗಳು, ಸರ್ವರ್ಗಳು ಅಥವಾ ಏಜೆಂಟ್ಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ನೀವು ಪರ್ಸಿಸ್ಟೆಂಟ್ ಸೆಷನ್ ಐಡಿ (persistent session ID) ಅನ್ನು ಅವಲಂಬಿಸಿರುವ ಕೋಡ್ ಅನ್ನು ಮರುಬರೆಯಲೇಬೇಕು—ಅಲ್ಲದಿದ್ದರೆ ರೂಟಿಂಗ್ ವೈಫಲ್ಯ, ಕ್ಯಾಶ್ ಮಿಸ್ಗಳು (cache misses) ಮತ್ತು ನಿಯಂತ್ರಣ ಮೀರಿ ಹೋಗುವ ಬ್ಯಾಕ್ಗ್ರೌಂಡ್ ಕೆಲಸಗಳಂತಹ ಸಮಸ್ಯೆಗಳನ್ನು ಎದುರಿಸಬೇಕಾಗುತ್ತದೆ.
ಈ ಬದಲಾವಣೆ ಏಕೆ ಮುಖ್ಯ
ಹಿಂದೆ MCP ಒಂದು ಸೆಷನ್ ಐಡಿಯನ್ನು (session identifier) ಉತ್ಪಾದಿಸುವ ಹ್ಯಾಂಡ್ಶೇಕ್ (handshake) ಅನ್ನು ಬಯಸುತ್ತಿತ್ತು. ಡೌನ್ಸ್ಟ್ರೀಮ್ ಸೇವೆಗಳು ಅದೇ ಐಡಿಯನ್ನು ಅವಲಂಬಿಸಿ, ವಿನಂತಿಗಳ ಸರಣಿಯು ಒಂದೇ ಪ್ರಕ್ರಿಯೆಗೆ (process) ತಲುಪುತ್ತದೆ ಎಂದು ಭಾವಿಸುತ್ತಿದ್ದವು, ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ಗಳು ಸ್ಟಿಕಿ ರೂಟಿಂಗ್ (sticky routing) ಬಳಸಲು ಮತ್ತು ಪ್ರತಿ ಸೆಷನ್ ಡೇಟಾವನ್ನು ಮೆಮೊರಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲು ಇದು ಸಹಕಾರಿಯಾಗಿತ್ತು. ಜುಲೈ ಬಿಡುಗಡೆಯು ಆ ಮಾದರಿಯನ್ನು ಸಂಪೂರ್ಣ ರಿಕ್ವೆಸ್ಟ್-ರಿಸ್ಪಾನ್ಸ್ (request-response) ಹರಿವಿನೊಂದಿಗೆ ಬದಲಾಯಿಸುತ್ತದೆ. ಈಗ ಸೆಷನ್ಗಳ ನಷ್ಟದ ಬಗ್ಗೆ ಚಿಂತಿಸದೆ ಸರ್ವರ್ ಅನ್ನು ಸೇರಿಸಬಹುದು ಅಥವಾ ತೆಗೆದುಹಾಕಬಹುದು. ಪ್ರೊಟೊಕಾಲ್ ಇನ್ನು ಮುಂದೆ ಸಂದರ್ಭವನ್ನು (context) ಉಳಿಸಿಕೊಳ್ಳುವುದಿಲ್ಲ; ಅಪ್ಲಿಕೇಶನ್ ಅದನ್ನು ಮಾಡಲೇಬೇಕು.
ಹಳೆಯ ಸೆಷನ್-ಕೇಂದ್ರಿತ ಕೋಡ್ ಅನ್ನು ಮುಂದುವರಿಸುವ ತಂಡಗಳು, ವಿನಂತಿಗಳು ತಪ್ಪು ಇನ್ಸ್ಟೆನ್ಸ್ಗೆ ಹೋಗುವುದು, ಕ್ಯಾಶ್ ಮಿಸ್ಗಳು ಮತ್ತು ಬ್ಯಾಕ್ಗ್ರೌಂಡ್ ಕೆಲಸಗಳು ಪೆಂಡಿಂಗ್ ಆಗುವುದು ಇವುಗಳನ್ನು ಗಮನಿಸಬೇಕಾಗುತ್ತದೆ. ಸ್ಟೇಟ್ಲೆಸ್ ಮಾದರಿಯನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವ ತಂಡಗಳು, ನಾನ್-ಸ್ಟಿಕಿ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ಗಳ (non-sticky load balancers) ಹಿಂದೆ MCP ಅನ್ನು ನಡೆಸಬಹುದು ಮತ್ತು ಇಡೀ ರಿಕ್ವೆಸ್ಟ್ ಚೈನ್ನಲ್ಲಿ ಉತ್ತಮ ವೀಕ್ಷಣೆ (observability) ಪಡೆಯಬಹುದು.
ನಿಜವಾದ ಬದಲಾವಣೆಗಳೇನು
- ಪ್ರೊಟೊಕಾಲ್ ಲೈಫ್ಸೈಕಲ್ (Protocol lifecycle) – ಹ್ಯಾಂಡ್ಶೇಕ್ ಮತ್ತು ಸೆಷನ್ ಐಡಿ ಇಲ್ಲವಾಗುತ್ತವೆ. ಪ್ರತಿಯೊಂದು ವಿನಂತಿಯು ಸರ್ವರ್ಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರಲೇಬೇಕು; ಮುಂದಿನ ವಿನಂತಿಯು ಅದೇ ಪ್ರಕ್ರಿಯೆಗೆ ತಲುಪುತ್ತದೆ ಎಂಬ ಗ್ಯಾರಂಟಿ ಇಲ್ಲ.
- HTTP ರೂಟಿಂಗ್ (HTTP routing) – ವಿನಂತಿಯನ್ನು ಎಲ್ಲಿಗೆ ಕಳುಹಿಸಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು ಗೇಟ್ವೇಗಳು ಈಗ ಎರಡು ಹೊಸ ಹೆಡರ್ಗಳನ್ನು,
Mcp-Methodಮತ್ತುMcp-Nameಅನ್ನು ಓದುತ್ತವೆ. ಸೆಷನ್-ಕುಕಿ ರೂಟಿಂಗ್ ಇನ್ನು ಮುಂದೆ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. - ಕ್ಯಾಶಿಂಗ್ (Caching) – ರೀಡ್ಗಳಿಗಾಗಿ ಸ್ಪೆಕ್ (spec)
ttlMs(ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ time-to-live) ಮತ್ತುcacheScopeಫೀಲ್ಡ್ಗಳನ್ನು ಸೇರಿಸಿದೆ. ಹಳೆಯ ಡೇಟಾ (stale data) ಸ್ವೀಕಾರಾರ್ಹವೇ ಎಂಬುದನ್ನು ನೀವು ನಿರ್ಧರಿಸಿ ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಕ್ಯಾಶ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ. - ವೀಕ್ಷಣೆ (Observability) –
_metaಬ್ಲಾಕ್ ಈಗ W3C Trace Context ಪೇಲೋಡ್ ಅನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತದೆ, ಇದು ಟ್ರೇಸಿಂಗ್ ಸಿಸ್ಟಮ್ಗಳು ಎಡ್ಜ್ ಗೇಟ್ವೇಗಳು, ಟೂಲಿಂಗ್ ಮತ್ತು ಬ್ಯಾಕ್ಎಂಡ್ ಕೆಲಸಗಳನ್ನು ಒಂದೇ ಎಂಡ್-ಟು-ಎಂಡ್ ಟ್ರೇಸ್ ಆಗಿ ಜೋಡಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. - ಕಂಪೋಸಿಷನ್ (Composition) – ಎಕ್ಸ್ಟೆನ್ಶನ್ಗಳನ್ನು ಔಪಚಾರಿಕಗೊಳಿಸಲಾಗಿದೆ; ಕೋರ್ ಸ್ಪೆಕ್ ಅನ್ನು ಬದಲಾಯಿಸದೆ ಹೊಸ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ಸೇರಿಸಬಹುದು, ಇದು ಪ್ಲಗ್-ಇನ್ ಶೈಲಿಯ ಆರ್ಕಿಟೆಕ್ಚರ್ ಅನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ.
- ದೀರ್ಘಾವಧಿಯ ಕೆಲಸಗಳು (Long-running work) – ನಿಮಿಷಗಳು ಅಥವಾ ಗಂಟೆಗಳ ಕಾಲ ನಡೆಯುವ ಕಾರ್ಯಗಳಿಗೆ ಸರಳ ರಿಕ್ವೆಸ್ಟ್/ರಿಸ್ಪಾನ್ಸ್ ಸಾಕಾಗುವುದಿಲ್ಲ. ಪ್ರೊಟೊಕಾಲ್ ಈಗ ಅಸೆಂಕ್ರೋನಸ್ (asynchronous) ಕೆಲಸಕ್ಕಾಗಿ ಲೈಫ್ಸೈಕಲ್ ನಿಯಂತ್ರಣಗಳೊಂದಿಗೆ
Taskಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ.
ಹಳೆಯ ಕೋಡ್ನಲ್ಲಿ ಅಡಗಿರುವ ಅಪಾಯಗಳು
ವೇಗವಾದ ಆಡಿಟ್ (audit) ಮಾಡುವುದರಿಂದ ಸ್ಟೇಟ್ಫುಲ್ನೆಸ್ (statefulness) ಅನ್ನು ಅವಲಂಬಿಸಿರುವ ಮಾದರಿಗಳು ಬಯಲಿಗೆ ಬರುತ್ತವೆ:
- ಸೆಷನ್ ಐಡಿಗಳ ಮೂಲಕ ಕೀ ಮಾಡಲಾದ ಇನ್-ಮೆಮೊರಿ ಮ್ಯಾಪ್ಗಳು (In-memory maps).
- ಸ್ಟಿಕಿ ಸೆಷನ್ಗಳಿಗಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ಗಳು.
- ಪ್ರತಿ ಸೆಷನ್ ಡೇಟಾವನ್ನು ಲೋಕಲ್ ಮೆಮೊರಿಯಲ್ಲಿ ಪ್ರೀಲೋಡ್ ಮಾಡುವ ಸ್ಟಾರ್ಟ್ಅಪ್ ರೂಟೀನ್ಗಳು.
- ಸೆಷನ್ ಕೊನೆಗೊಂಡಾಗ ಬಿಸಿನೆಸ್ ಡೇಟಾವನ್ನು ಡಿಲೀಟ್ ಮಾಡುವ ಕ್ಲೀನಪ್ ಲಾಜಿಕ್.
ಈ ಬದಲಾವಣೆಯ ಸಮಯದಲ್ಲಿ ಇವುಗಳಲ್ಲಿ ಯಾವುದಾದರೂ ಉಳಿದರೆ, ಸಿಸ್ಟಮ್ ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ಲೋಡ್ ಅಡಿಯಲ್ಲಿ ಸಂಪನ್ಮೂಲಗಳ ಸೋರಿಕೆಯಾಗಬಹುದು (resource leak).
ಒಂದು ನಿರ್ದಿಷ್ಟ ಮೈಗ್ರೇಷನ್ ಚೆಕ್ಲಿಸ್ಟ್
1. ಪ್ರಸ್ತುತ ಕಲ್ಪನೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ (Inventory current assumptions)
ನಿಮ್ಮ ಕೋಡ್ ಸೆಷನ್ ಐಡಿ, ಸ್ಟಿಕಿ-ರೂಟಿಂಗ್ ರೂಲ್ ಅಥವಾ ಪ್ರೊಸೆಸ್-ಲೋಕಲ್ ಕ್ಯಾಶ್ ಅನ್ನು ಬಳಸುವ ಪ್ರತಿಯೊಂದು ಜಾಗವನ್ನು ಗುರುತಿಸಿ. ಯಾವ ಘಟಕಗಳು (components) ಯಾವುದನ್ನು ಅವಲಂಬಿಸಿವೆ ಎಂಬುದನ್ನು ದಾಖಲಿಸಿ.
2. ಐಡೆಂಟಿಟಿಯನ್ನು ಸ್ಪಷ್ಟಪಡಿಸಿ (Make identity explicit)
ಪ್ರತಿಯೊಂದು ರಿಕ್ವೆಸ್ಟ್ ಪೇಲೋಡ್ ಅಥವಾ ಹೆಡರ್ಗೆ ಟೆನೆಂಟ್ ಐಡಿಗಳು (tenant IDs), ರನ್ ಐಡಿಗಳು (run IDs) ಮತ್ತು ಯೂಸರ್ ಐಡಿಗಳನ್ನು ಸೇರಿಸಿ. ಅಧಿಕಾರ ಮತ್ತು ಡೇಟಾ ಪಾರ್ಟಿಷನಿಂಗ್ಗಾಗಿ ಈ ಐಡೆಂಟಿಫೈಯರ್ಗಳನ್ನು ಮೂಲ ಸತ್ಯಾಂಶವಾಗಿ (source of truth) ಪರಿಗಣಿಸಿ.
3. ರೂಟಿಂಗ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅಪ್ಡೇಟ್ ಮಾಡಿ (Update routing configuration)
ಸೆಷನ್ ಆಧಾರಿತ ರೂಟಿಂಗ್ ಅನ್ನು Mcp-Method ಮತ್ತು Mcp-Name ಅನ್ನು ಓದುವ ನಿಯಮಗಳೊಂದಿಗೆ ಬದಲಾಯಿಸಿ. ನಾನ್-ಸ್ಟಿಕಿ ಲೋಡ್ ಬ್ಯಾಲೆನ್ಸರ್ನ ಹಿಂದೆ ಕನಿಷ್ಠ ಎರಡು ಇನ್ಸ್ಟೆನ್ಸ್ ಇರುವ ಸಣ್ಣ ನಿಯೋಜನೆಯೊಂದಿಗೆ (deployment) ಹೊಸ ಗೇಟ್ವೇ ಲಾಜಿಕ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ.
4. ಕ್ಯಾಶಿಂಗ್ ಲಾಜಿಕ್ ಅನ್ನು ಮರುರೂಪಿಸಿ (Refactor caching logic)
ಹೊಸ ttlMs ಮತ್ತು cacheScope ಫೀಲ್ಡ್ಗಳಿಗೆ ಬದಲಾಯಿಸಿ. ವಿಭಿನ್ನ TTL ಮೌಲ್ಯಗಳು ಹಿಟ್ ರೇಟ್ ಮತ್ತು ಫ್ರೆಶ್ನೆಸ್ ಅಗತ್ಯತೆಗಳ ಮೇಲೆ ಹೇಗೆ ಪರಿಣಾಮ ಬೀರುತ್ತವೆ ಎಂಬುದನ್ನು ನೋಡಲು ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಟೆಸ್ಟ್ಗಳನ್ನು ನಡೆಸಿ.
ಎಂಡ್-ಟು-ಎಂಡ್ ಟ್ರೇಸಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ: _meta ಬ್ಲಾಕ್ ಅನ್ನು W3C Trace Context ಹೆಡರ್ನೊಂದಿಗೆ ತುಂಬಿಸಿ. ಟ್ರೇಸ್ಗಳು ಈಗ ಎಡ್ಜ್ ಗೇಟ್ವೇಯಿಂದ ನಿಮ್ಮ ಬ್ಯಾಕ್ಎಂಡ್ ಸೇವೆಗಳ ಮೂಲಕ ಯಾವುದೇ ಅಂತರವಿಲ್ಲದೆ ಹರಿಯುತ್ತಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ಅಸೆಂಕ್ರೋನಸ್ (async) ಕೆಲಸಕ್ಕಾಗಿ Task ಮಾದರಿಯನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ: ಯಾರು ಟಾಸ್ಕ್ ರಚಿಸಬಹುದು ಎಂಬುದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ, ಗರಿಷ್ಠ ರನ್ಟೈಮ್ಗಳನ್ನು ನಿಗದಿಪಡಿಸಿ ಮತ್ತು ಕ್ಯೂ (queue) ಮಿತಿಗಳನ್ನು ಜಾರಿಗೆ ತರండి. ಸ್ಪಷ್ಟವಾದ ರದ್ದತಿ (cancellation) ಮತ್ತು ಮರುಪ್ರಯತ್ನ (retry) ನೀತಿಗಳನ್ನು ಸೇರಿಸಿ, ಮತ್ತು ಟಾಸ್ಕ್ ಬಾಕಿ ಇರುವಾಗ ಏಜೆಂಟ್ ಏನು ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಬಂಧಿಸಿ.
ಜುಲೈ 28 ಕ್ಕಿಂತ ಮೊದಲು SDK ಮತ್ತು ಕ್ಲೈಂಟ್ ಲೈಬ್ರರಿ ರಿಲೀಸ್ ನೋಟ್ಸ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ.
ಫೇಲ್ಯೂರ್ ಪಾತ್ಗಳನ್ನು (failure paths) ಗುರಿಯಾಗಿಸಿಕೊಂಡ ರಿಗ್ರೆಷನ್ ಸೂಟ್ಗಳನ್ನು (regression suites) ಚಲಾಯಿಸಿ: ಸಾಮಾನ್ಯ ಪಥಗಳ (happy-path) ಪರೀಕ್ಷೆಗಳ ಜೊತೆಗೆ, ಮಿಸ್ಸಿಂಗ್ ಹೆಡರ್ಗಳು, ಎಕ್ಸ್ಪೈರ್ ಆದ ಟಾಸ್ಕ್ಗಳು ಮತ್ತು ತಪ್ಪಾದ ಕ್ಯಾಶ್ ಡೈರೆಕ್ಟಿವ್ಗಳನ್ನು ಸೇರಿಸಿ ಪರೀಕ್ಷಿಸಿ. ಸಿಸ್ಟಮ್ ದೋಷಗಳಿದ್ದರೂ ಸುಗಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ಮುಂದೆ ಏನನ್ನು ಗಮನಿಸಬೇಕು
ಸುರಕ್ಷಿತವಾಗಿ ಮೈಗ್ರೇಟ್ ಮಾಡುವ ತಂಡಗಳು ಕೇವಲ ಸಾಮಾನ್ಯ ಪಥಗಳನ್ನು (happy path) ಮಾತ್ರವಲ್ಲದೆ, ಗಡಿಗಳನ್ನು (boundaries) ಕೂಡ ಪರೀಕ್ಷಿಸುತ್ತವೆ. ಜುಲೈ 28 ರ ನಂತರವೂ ಸೆಷನ್ ಐಡಿಯನ್ನು ನಿರೀಕ್ಷಿಸುವ ಯಾವುದೇ ಪ್ರೊಡಕ್ಷನ್ ನಿಯೋಜನೆಯು ಹೊಸ MCP ಸರ್ವರ್
