Architecture Decision Record

Active theme: Light

← ຕົວຢ່າງບັນທຶກການຕັດສິນໃຈ

ບັນທຶກການຕັດສິນໃຈດ້ານສະຖາປັດຕະຍະກຳ: API ທີ່ໃຊ້ JSON ທຽບກັບ gRPC

ສະຖານະ

ຍອມຮັບ

ບໍລິບົດ

ພວກເຮົາກຳລັງອອກແບບ API ສຳລັບບໍລິການໃໝ່ທີ່ຈະຖືກໃຊ້ໂດຍລູກຂ່າຍຫຼາຍຕົວ. ພວກເຮົາໄດ້ພິຈາລະນາສອງທາງເລືອກໃນການປະຕິບັດ API: ໃຊ້ JSON ຜ່ານ HTTP ຫຼື ໃຊ້ gRPC.

JSON ຜ່ານ HTTP ເປັນແນວທາງທີ່ໃຊ້ກັນຢ່າງກວ້າງຂວາງໃນການສ້າງ API ແລະ ໄດ້ຮັບການສະໜັບສະໜູນຈາກຫຼາຍພາສາການຂຽນໂປຣແກຣມ ແລະ ເຟຣມເວີກ. ແນວທາງນີ້ງ່າຍ, ເບົາ ແລະ ເຂົ້າໃຈງ່າຍ ເຮັດໃຫ້ເປັນທາງເລືອກທີ່ດີສຳລັບຫຼາຍໂຄງການ. ແນວໃດກໍຕາມ ມັນອາດມີປະສິດທິພາບໜ້ອຍກວ່າທາງເລືອກອື່ນ ໂດຍສະເພາະເມື່ອຈັດການກັບຂໍ້ມູນຈຳນວນຫຼາຍ.

ສ່ວນ gRPC ເປັນເຕັກໂນໂລຢີທີ່ໃໝ່ກວ່າ ທີ່ສະເໜີວິທີສ້າງ API ທີ່ມີປະສິດທິພາບກວ່າ. ມັນໃຊ້ການແປງຂໍ້ມູນເປັນຖານສອງເພື່ອສົ່ງຂໍ້ມູນ ເຊິ່ງອາດໄວກວ່າ ແລະ ກະທັດຮັດກວ່າການໃຊ້ JSON. gRPC ຍັງຮອງຮັບການສະຕຣີມສອງທິດທາງ ເຮັດໃຫ້ເປັນທາງເລືອກທີ່ດີສຳລັບແອັບພລິເຄຊັນເວລາຈິງ.

ການຕັດສິນໃຈ

ຫຼັງຈາກພິຈາລະນາຂໍ້ດີ ແລະ ຂໍ້ເສຍຂອງທັງສອງທາງເລືອກ ພວກເຮົາໄດ້ຕັດສິນໃຈໃຊ້ gRPC ສຳລັບ API ຂອງພວກເຮົາ. ເຖິງແມ່ນ JSON ຜ່ານ HTTP ເປັນທາງເລືອກທີ່ງ່າຍກວ່າ ພວກເຮົາເຊື່ອວ່າ gRPC ຈະໃຫ້ວິທີແກ້ໄຂທີ່ມີປະສິດທິພາບ ແລະ ຂະຫຍາຍໄດ້ຫຼາຍກວ່າສຳລັບບໍລິການຂອງພວກເຮົາ. ພວກເຮົາຍັງຄາດວ່າ API ຂອງພວກເຮົາຈະຈັດການຂໍ້ມູນຈຳນວນຫຼາຍ ແລະ ການແປງຂໍ້ມູນເປັນຖານສອງຂອງ gRPC ຈະມີປະສິດທິພາບກວ່າສຳລັບກໍລະນີການນຳໃຊ້ນີ້.

ນອກຈາກນີ້ ພວກເຮົາເຊື່ອວ່າການຮອງຮັບການສະຕຣີມສອງທິດທາງຂອງ gRPC ຈະເປັນປະໂຫຍດຕໍ່ແອັບພລິເຄຊັນເວລາຈິງທີ່ພວກເຮົາອາດພັດທະນາໃນອະນາຄົດ.

ຜົນສະທ້ອນ

ໂດຍການເລືອກ gRPC ພວກເຮົາຈະຕ້ອງໃຊ້ຊຸດເຄື່ອງມື ແລະ ໄລບຣາຣີທີ່ແຕກຕ່າງເພື່ອສ້າງ API ຂອງພວກເຮົາ ເມື່ອທຽບກັບການໃຊ້ JSON ຜ່ານ HTTP. ສິ່ງນີ້ອາດຕ້ອງໃຊ້ເວລາ ແລະ ຄວາມພະຍາຍາມເພີ່ມເຕີມເພື່ອຮຽນຮູ້ ແລະ ປະຕິບັດເຕັກໂນໂລຢີເຫຼົ່ານີ້. ນອກຈາກນີ້ ລູກຂ່າຍທີ່ຕ້ອງການໃຊ້ API ຂອງພວກເຮົາຈະຕ້ອງໃຊ້ໄລບຣາຣີທີ່ເຂົ້າກັນໄດ້ກັບ gRPC ເຊິ່ງອາດບໍ່ໄດ້ຮັບການສະໜັບສະໜູນກວ້າງຂວາງເທົ່າໄລບຣາຣີ JSON ຜ່ານ HTTP.

ແນວໃດກໍຕາມ ພວກເຮົາເຊື່ອວ່າຜົນປະໂຫຍດຂອງການໃຊ້ gRPC ມີນ້ຳໜັກຫຼາຍກວ່າຂໍ້ເສຍທີ່ອາດເກີດຂຶ້ນເຫຼົ່ານີ້ ແລະ ພວກເຮົາໝັ້ນໃຈວ່າການຕັດສິນໃຈນີ້ຈະສ້າງ API ທີ່ມີປະສິດທິພາບ ແລະ ຂະຫຍາຍໄດ້ຫຼາຍຂຶ້ນ.