Descargo de responsabilidad: uso GraphQL en producción pero no he usado gRPC. Solo he hojeado los documentos y tengo una comprensión teórica de RPC en general.
gRPC y GraphQL resuelven un problema ligeramente diferente y, por lo tanto, sus casos de uso variarán.
gRPC es un sistema estándar RPC (llamada a procedimiento remoto), cuyo concepto realmente no ha cambiado mucho desde que se utilizó por primera vez en la década de 1960. Como su nombre indica, se utiliza para ejecutar funciones en alguna máquina remota.
- ¿Existe algún servicio DNS dinámico para alojar el servidor web en casa sin la necesidad de configurar el enrutador doméstico?
- ¿Cuál es la diferencia entre MPL y VPL?
- Actualmente soy ingeniero de seguridad de red y ahora quiero cambiar a IoT. ¿Cómo debo avanzar?
- Cómo agregar archivos usando WebDev Network Drive en PlayerXtreme
- Cómo asignar la dirección IP correcta basada en la dirección de subred y la máscara
GraphQL, por otro lado, se centra principalmente en la obtención de datos. Su poder proviene de poder definir una estructura de datos compleja que se necesita para representar una vista particular (puede leer más en mi publicación mediana [1]), y le permite al cliente desacoplar vistas de puntos finales de servidores individuales.
Creo que GraphQL es más adecuado para crear productos para usuarios finales, ya que optimiza la comunicación cliente-servidor para obtener datos para una página. Como los clientes suelen ser móviles, el énfasis está en disminuir la cantidad de llamadas remotas (idealmente, buscar todos los datos en una sola solicitud).
gRPC se usa ampliamente en un entorno servidor-servidor distribuido donde un sistema necesita invocar una función que está expuesta por otro sistema. El énfasis aquí está en lograr una sobrecarga mínima para llamadas individuales, y los datos se transfieren muy a menudo en binario.
Como siempre, ninguna solución individual es 100% perfecta para cualquier caso de uso. Si está creando una aplicación móvil / web con un solo servidor (o una fachada con varios servidores), es probable que GraphQL sea una buena opción. Si, por otro lado, tiene una arquitectura orientada al servicio, puede usar gRPC para facilitar la comunicación entre los servidores.
Notas al pie
[1] GraphQL en la era de las API REST – Chute Engineering