Architecture Decision Record

Active theme: Light

← ನಿರ್ಧಾರ ದಾಖಲೆ ಉದಾಹರಣೆಗಳು

ವಾಸ್ತುಶಿಲ್ಪ ನಿರ್ಧಾರ ದಾಖಲೆ: JSON ವರ್ಸಸ್ gRPC ಬಳಸುವ API

ಸ್ಥಿತಿ

ಸ್ವೀಕೃತ

ಸಂದರ್ಭ

ಅನೇಕ ಕ್ಲೈಂಟ್‌ಗಳು ಬಳಸುವ ಹೊಸ ಸೇವೆಗಾಗಿ ನಾವು API ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುತ್ತಿದ್ದೇವೆ. API ಅನುಷ್ಠಾನಕ್ಕಾಗಿ ನಾವು ಎರಡು ಆಯ್ಕೆಗಳನ್ನು ಪರಿಗಣಿಸುತ್ತಿದ್ದೇವೆ: HTTP ಮೇಲೆ JSON ಬಳಸುವುದು ಅಥವಾ gRPC ಬಳಸುವುದು.

HTTP ಮೇಲೆ JSON ಎಂಬುದು API ಗಳನ್ನು ನಿರ್ಮಿಸಲು ವ್ಯಾಪಕವಾಗಿ ಬಳಸುವ ವಿಧಾನ, ಮತ್ತು ಇದನ್ನು ಅನೇಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳು ಮತ್ತು ಚೌಕಟ್ಟುಗಳು ಬೆಂಬಲಿಸುತ್ತವೆ. ಈ ವಿಧಾನ ಸರಳ, ಹಗುರ ಮತ್ತು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭ, ಇದು ಅನೇಕ ಯೋಜನೆಗಳಿಗೆ ಉತ್ತಮ ಆಯ್ಕೆಯಾಗಿದೆ. ಆದಾಗ್ಯೂ, ವಿಶೇಷವಾಗಿ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಇದು ಇತರ ಆಯ್ಕೆಗಳಿಗಿಂತ ಕಡಿಮೆ ದಕ್ಷವಾಗಿರಬಹುದು.

ಮತ್ತೊಂದೆಡೆ, gRPC ಹೊಸ ತಂತ್ರಜ್ಞಾನವಾಗಿದ್ದು, API ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಹೆಚ್ಚು ದಕ್ಷ ಮಾರ್ಗವನ್ನು ನೀಡುತ್ತದೆ. ಇದು ಡೇಟಾ ವರ್ಗಾಯಿಸಲು ಬೈನರಿ ಸೀರಿಯಲೈಸೇಶನ್ ಬಳಸುತ್ತದೆ, ಇದು JSON ಬಳಸುವುದಕ್ಕಿಂತ ವೇಗವಾಗಿ ಮತ್ತು ಹೆಚ್ಚು ಸಂಕ್ಷಿಪ್ತವಾಗಿರಬಹುದು. gRPC ದ್ವಿಮುಖ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನೂ ಬೆಂಬಲಿಸುತ್ತದೆ, ಇದು ನೈಜ-ಸಮಯದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಉತ್ತಮ ಆಯ್ಕೆಯಾಗಿದೆ.

ನಿರ್ಧಾರ

ಎರಡೂ ಆಯ್ಕೆಗಳ ಸಾಧಕ-ಬಾಧಕಗಳನ್ನು ಪರಿಗಣಿಸಿದ ನಂತರ, ನಮ್ಮ API ಗಾಗಿ gRPC ಬಳಸಲು ನಾವು ನಿರ್ಧರಿಸಿದ್ದೇವೆ. HTTP ಮೇಲೆ JSON ಸರಳ ಆಯ್ಕೆಯಾಗಿದ್ದರೂ, ನಮ್ಮ ಸೇವೆಗೆ gRPC ಹೆಚ್ಚು ದಕ್ಷ ಮತ್ತು ವಿಸ್ತರಿಸಬಹುದಾದ ಪರಿಹಾರವನ್ನು ಒದಗಿಸುತ್ತದೆ ಎಂದು ನಾವು ನಂಬುತ್ತೇವೆ. ನಮ್ಮ API ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದೂ ನಾವು ನಿರೀಕ್ಷಿಸುತ್ತೇವೆ, ಮತ್ತು ಈ ಬಳಕೆಯ ಪ್ರಕರಣಕ್ಕೆ gRPC ಯ ಬೈನರಿ ಸೀರಿಯಲೈಸೇಶನ್ ಹೆಚ್ಚು ದಕ್ಷವಾಗಿರುತ್ತದೆ.

ಜೊತೆಗೆ, ಭವಿಷ್ಯದಲ್ಲಿ ನಾವು ಅಭಿವೃದ್ಧಿಪಡಿಸಬಹುದಾದ ನೈಜ-ಸಮಯದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ gRPC ಯ ದ್ವಿಮುಖ ಸ್ಟ್ರೀಮಿಂಗ್ ಬೆಂಬಲವು ಪ್ರಯೋಜನಕಾರಿಯಾಗಿರುತ್ತದೆ ಎಂದು ನಾವು ನಂಬುತ್ತೇವೆ.

ಪರಿಣಾಮಗಳು

gRPC ಆರಿಸುವ ಮೂಲಕ, HTTP ಮೇಲೆ JSON ಬಳಸುವುದಕ್ಕೆ ಹೋಲಿಸಿದರೆ ನಮ್ಮ API ಅನ್ನು ನಿರ್ಮಿಸಲು ನಾವು ಬೇರೆ ಸಾಧನಗಳು ಮತ್ತು ಗ್ರಂಥಾಲಯಗಳ ಸಮೂಹವನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ. ಈ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಕಲಿಯಲು ಮತ್ತು ಅನುಷ್ಠಾನಗೊಳಿಸಲು ಹೆಚ್ಚುವರಿ ಸಮಯ ಮತ್ತು ಪ್ರಯತ್ನ ಬೇಕಾಗಬಹುದು. ಜೊತೆಗೆ, ನಮ್ಮ API ಬಳಸಲು ಬಯಸುವ ಕ್ಲೈಂಟ್‌ಗಳು gRPC-ಹೊಂದಾಣಿಕೆಯ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ, ಅವು HTTP ಮೇಲೆ JSON ಗ್ರಂಥಾಲಯಗಳಷ್ಟು ವ್ಯಾಪಕವಾಗಿ ಬೆಂಬಲಿತವಾಗಿಲ್ಲದಿರಬಹುದು.

ಆದಾಗ್ಯೂ, gRPC ಬಳಸುವುದರ ಪ್ರಯೋಜನಗಳು ಈ ಸಂಭಾವ್ಯ ಅನಾನುಕೂಲಗಳಿಗಿಂತ ಹೆಚ್ಚು ಎಂದು ನಾವು ನಂಬುತ್ತೇವೆ, ಮತ್ತು ಈ ನಿರ್ಧಾರವು ಹೆಚ್ಚು ದಕ್ಷ ಮತ್ತು ವಿಸ್ತರಿಸಬಹುದಾದ API ಗೆ ಕಾರಣವಾಗುತ್ತದೆ ಎಂಬ ವಿಶ್ವಾಸ ನಮಗಿದೆ.