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 માં પરિણમશે.