Entretenimiento

Diseño práctico de API usando gRPC en Netflix

Serie de dos partes artículos sobre diseño de API en Netflix se publicó recientemente en el blog de tecnología de la empresa. Describe cómo resolvieron el problema de ignorar los campos de mensaje irrelevantes en las solicitudes y respuestas de la API en segundo plano mediante el uso de un mensaje especial de búfer de protocolo (Protobuf) en FieldMask.

Aleksi Borysov y Ricky Gardiner, Ingenieros de software sénior de Netflix, señalan que los clientes de API a menudo no utilizan todos los campos en sus respuestas a sus solicitudes. Esta transmisión y cálculo de información irrelevante para una solicitud en particular puede desperdiciar ancho de banda y recursos computacionales, aumentar la tasa de error y aumentar la latencia general.

Los autores argumentan que tal desperdicio se puede evitar cuando los clientes de API asignan campos que son relevantes para ellos en cada solicitud. Señalan que esta función está incluida en estándares de API como GraphQL y JSON: API, y cuestionan si el uso extensivo de gRPC por parte de Netflix en el backend podría beneficiarse de un mecanismo idéntico.

Descubrieron que un mensaje en particular llamado FieldMask estaba definido en Protobuf, la codificación del mensaje detrás de gRPC. Cuando se incluye en las solicitudes de API, permite a los clientes enumerar qué campos son relevantes y se pueden usar para operaciones de lectura y edición.

Seleccione algunos campos del cuerpo del mensaje grande.
Fuente: https://netflixtechblog.com/practical-api-design-at-netflix-part-1-using-protobuf-fieldmask-35cfdc606518

Los autores también describen el modelo elegido para controlar la evolución del modelo de datos para cada API mientras se mantiene cierto grado de compatibilidad con versiones anteriores. Los campos antiguos están deshabilitados en lugar de los nuevos, y admiten la necesidad de una máscara de campo válida o un número de versión con cada actualización.

READ  Novedades y novedades de Netflix en diciembre

La necesidad de optimizar la huella general del tráfico de API también es evidente en diferentes sectores. Otros también han llegado a la conclusión de que es útil permitir que los clientes controlen qué información se transfiere. Como consultor Adam DuVander señala en un artículo anterior sobre el tema Flexibilidad de solicitud de API, “un poco de demasiados o muy pocos datos puede parecer trivial, pero juntos pueden tener un gran impacto”. DuVander muestra cómo diferentes implementaciones de API resolvieron este problema.

El artículo incluye ejemplos detallados de código y mensajes de Protobuf para ilustrar cómo se utilizan los mensajes de FieldMask en Netflix.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba