¿Cuál es el propósito de usar RPC en el backend?

Los RPC (e incluiré servicios web en la definición, así como procedimientos remotos en bases de datos, etc.) tienen algunos propósitos útiles en el procesamiento de datos:
1) Eficiencia: en lugar de mover datos a través de una red entre un cliente y un servidor, puede enviar un mensaje a un servidor para ejecutar una tarea compleja, posiblemente de gran ancho de banda, sin la necesidad de una conexión de alto ancho de banda entre el cliente y el servidor.
2) Separación de preocupaciones: el RPC seguirá las mismas reglas establecidas, sin importar cómo se invoque, por lo que no necesita saber * cómo * hace algo sino simplemente cuál es el resultado deseado.
3) Seguridad: un RPC puede aprovechar credenciales más altas que las que se le pueden dar al cliente. Una vez más, la separación de la preocupación funciona a su favor.
4) Eficiencia del código: el código para un RPC se escribe una vez, pero su funcionalidad o salida puede ser aprovechada por muchos sistemas diferentes.