> For the complete documentation index, see [llms.txt](https://grpc.dhfnr.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://grpc.dhfnr.com/master.md).

# The Motivation of gRPC

## Communication Between Different Languages

* Back and dan Front End bisa ditulis dengan bahasa pemrograman yang berbeda
* Microservices arsitektur yang bisa ditulis dengan berbagai macam bahasa pemrograman
  * Dalam microservice untuk berkomunikasi antar service maka harus ada API contract
    * Communication channel : REST , SOAP , message queue
    * Authetication mechanism : Basic, OAuth, JWT
    * Payload format : JSON, XML, binary
    * Data Model
    * Error Handling
  * Banyak sekali hal yang harus diperhatikan dalam membuat API, oleh karena itu membuat API menjadi sesuatu yang sangat sulit

## Communication Should Be Efficient

* Pertukaran data antar microservice yang membutuhkan biaya yang besar
* Mobile Network yang lebih lambat daripada komunikasi server

## Communication Should Be Simple

Ketika mempunyai banyak sekali service dalam microservice, maka kita tidak mau menghabiskan banyak waktu hanya untuk membuat code yang berfungsi untuk menhubungkan antara service

* Client dan server yang fokus untuk mengimplementasikan core logic dari service tersebut
* Memberikan semua komunikasi kepada Framework untuk menghandle nya

##
