Controlar el uso de la API limitando la frecuencia de llamadas (ej., 100 llamadas/min) frente al total de llamadas durante un período más largo (ej., 10,000 llamadas/mes).
→Utilice la política `rate-limit` para la frecuencia de llamadas. Utilice la política `quota` para el volumen total de llamadas.
Por qué: `rate-limit` limita ráfagas a corto plazo y devuelve HTTP 429. `quota` impone un límite de uso a largo plazo (ej., un período de facturación) y devuelve HTTP 403 cuando se excede.
Referencia↗
Almacenar en caché las respuestas de la API en API Management para reducir la carga del backend, con la clave de caché variando según un encabezado de solicitud.
→Utilice una política `<cache-lookup vary-by-header="..." />` en la sección de entrada y una política `<cache-store duration="..." />` en la sección de salida.
Por qué: Esta combinación de políticas de dos partes habilita el almacenamiento en caché de respuestas. `cache-lookup` verifica si hay un elemento en caché, y `cache-store` guarda la respuesta. Los atributos `vary-by` aseguran entradas de caché únicas para diferentes variaciones de solicitud.
Administrar cambios en una API. Se requiere un cambio que rompe la compatibilidad versus un cambio que no la rompe y necesita ser probado.
→Utilice Versiones para cambios que rompen la compatibilidad (ej., /v1, /v2). Utilice Revisiones para cambios que no rompen la compatibilidad y despliegues seguros y escalonados.
Por qué: El versionado permite que múltiples versiones de la API estén activas simultáneamente. Las revisiones permiten modificar una API fuera de línea, probarla y luego convertirla en la revisión "actual" sin tiempo de inactividad.
Notificar a múltiples servicios downstream independientes cuando ocurre un evento en un servicio de Azure (ej., blob creado, grupo de recursos creado).
→Utilice Azure Event Grid. Cree un tema del sistema para el recurso de Azure y suscripciones a eventos para cada manejador downstream.
Por qué: Event Grid es un servicio pub/sub basado en push, totalmente administrado, que desacopla a los publicadores de eventos de los suscriptores, habilitando arquitecturas reactivas y basadas en eventos.
Referencia↗
Ingerir un flujo de alto volumen de telemetría o datos de eventos (millones de eventos por segundo) de muchos dispositivos.
→Utilice Azure Event Hubs.
Por qué: Event Hubs es una plataforma de streaming de datos masivamente escalable diseñada para la ingesta de alto rendimiento. Utiliza un modelo de consumidor particionado para el procesamiento paralelo.
Asegurar que los eventos de la misma fuente (ej., un dispositivo IoT específico) sean procesados en orden por el mismo consumidor.
→Envíe eventos a Event Hubs con una clave de partición configurada con el identificador de la fuente (ej., ID del dispositivo).
Por qué: Event Hubs enruta todos los mensajes con la misma clave de partición a la misma partición. Dentro de una partición, se mantiene el orden de los mensajes.
Procesar una secuencia de mensajes relacionados en estricto orden Primero en Entrar, Primero en Salir (FIFO).
→Utilice sesiones de Azure Service Bus. Envíe todos los mensajes relacionados con el mismo `SessionId`.
Por qué: Las sesiones proporcionan un flujo concurrente y ordenado de mensajes. Un receptor consciente de la sesión bloquea la sesión, garantizando que los mensajes sean procesados secuencialmente por un único consumidor.
Un único publicador envía mensajes a un tema, pero múltiples suscriptores solo desean un subconjunto de esos mensajes basados en las propiedades del mensaje.
→Utilice un tema de Service Bus con múltiples suscripciones. Aplique filtros SQL o filtros de Correlación a cada suscripción.
Por qué: Este es el patrón canónico de publicar-suscribir con enrutamiento basado en contenido. Cada suscripción recibe una copia del mensaje si coincide con su regla de filtro.
Un mensaje no puede ser procesado con éxito después de múltiples reintentos y debe ser apartado para una inspección posterior.
→Deje que el mensaje falle el procesamiento hasta que se exceda su conteo máximo de entregas. Se moverá automáticamente a la Cola de Mensajes No Entregables (DLQ).
Por qué: La DLQ es una sub-cola incorporada para mensajes "veneno". Esto evita que un mensaje fallido bloquee la cola principal y permite el análisis y reprocesamiento fuera de línea.
Elija un servicio de mensajería para: comandos empresariales, eventos reactivos o telemetría de alto volumen.
→Service Bus para comandos (pedidos, transacciones). Event Grid para eventos reactivos (blob creado, recurso cambiado). Event Hubs para telemetría (datos IoT, clickstreams).
Por qué: Service Bus ofrece características enriquecidas como ordenamiento, transacciones y envío a cola de mensajes no entregables. Event Grid es para enrutamiento de eventos ligero y basado en push. Event Hubs es para streaming de datos de alto rendimiento.