Saltar al contenido principal
Didit recauda 7,5M $ para construir la infraestructura para identidad y fraude
Didit
Volver al blog
Blog · 7 de marzo de 2026

Optimiza el rendimiento de la API de Didit con Python Asyncio (ES-1)

Descubre cómo Asyncio de Python puede mejorar drásticamente el rendimiento y la eficiencia de tus aplicaciones que consumen las APIs de verificación de identidad de Didit, optimizando el manejo de llamadas simultáneas y límites.

Por DiditActualizado el
boost-didit-api-throughput-with-python-asyncio.png

Optimiza el Consumo de API: Python Asyncio permite operaciones de E/S no bloqueantes, mejorando significativamente la eficiencia de las aplicaciones que realizan numerosas llamadas API a servicios como Didit para la verificación de identidad.

Domina la Limitación de Tasa: Implementa estrategias sofisticadas de limitación de tasa con Asyncio para mantenerte dentro de los límites de la API de Didit, previniendo errores 429 y asegurando la disponibilidad continua del servicio para escenarios de alto rendimiento.

Construye Soluciones Escalables: Aprovecha el modelo de concurrencia de Asyncio para diseñar sistemas robustos y escalables capaces de procesar miles de solicitudes de verificación de identidad por segundo sin incurrir en altos costos de infraestructura.

Ventaja API-First de Didit: El enfoque de Didit, primero para desarrolladores, con APIs limpias y un entorno de pruebas instantáneo, es ideal para la integración con frameworks asíncronos, permitiendo flujos de trabajo de verificación de identidad fluidos y de alto rendimiento, desde la verificación de ID hasta la detección de vivacidad.

La Necesidad de Velocidad: ¿Por Qué Asyncio para el Consumo de API?

En el vertiginoso mundo digital actual, las aplicaciones a menudo necesitan realizar numerosas llamadas a APIs externas para cumplir sus funciones. Cuando estas llamadas son bloqueantes, lo que significa que la aplicación espera cada respuesta antes de pasar a la siguiente, rápidamente surgen cuellos de botella en el rendimiento. Esto es especialmente cierto para los servicios de verificación de identidad, donde un único flujo de incorporación de usuario podría implicar múltiples interacciones con la API: Verificación de ID, verificaciones de Vivacidad Pasiva y Activa, Coincidencia Facial 1:1 y Detección de Blanqueo de Capitales (AML). Para empresas con grandes volúmenes de usuarios, estas operaciones secuenciales pueden provocar retrasos significativos y una mala experiencia de usuario.

La biblioteca asyncio de Python proporciona un marco robusto para escribir código concurrente utilizando la sintaxis async/await. A diferencia del multi-threading tradicional, que puede introducir complejidades como el Global Interpreter Lock (GIL) para tareas ligadas a la CPU, asyncio está diseñado para operaciones ligadas a E/S. Las llamadas a la API son inherentemente ligadas a E/S (esperando respuestas de la red), lo que convierte a asyncio en un candidato ideal para potenciar la capacidad de tu aplicación para consumir APIs externas de manera eficiente. Al permitir que tu programa realice otras tareas mientras espera las respuestas de la API, asyncio puede aumentar drásticamente el rendimiento sin requerir una reescritura completa de la arquitectura de tu aplicación en un sistema distribuido.

Comprendiendo el Panorama de la API de Didit y los Límites de Tasa

Didit, como plataforma de identidad nativa de IA, ofrece un conjunto completo de APIs para la verificación de identidad, incluyendo Verificación de ID (OCR, MRZ, códigos de barras), Vivacidad Pasiva y Activa, Coincidencia Facial 1:1, Detección y Monitoreo de AML, y más. Nuestra API está diseñada para un alto rendimiento y fiabilidad, pero como todas las APIs robustas, emplea la limitación de tasa para garantizar la estabilidad y el uso justo entre todos los clientes. Comprender estos límites es crucial para cualquier consumidor de alto rendimiento.

Didit aplica límites de tasa tanto globales como específicos por punto final. Por ejemplo, los límites globales suelen ser de 300 solicitudes por minuto por aplicación tanto para puntos finales GET como para Write/Delete. Se aplican límites más restrictivos a operaciones de alto impacto, como 600 RPM para POST /v2/session/ (para crear flujos de trabajo de verificación) y 100 RPM para GET /v2/session/<id>/decision/ (para recuperar decisiones de sesión). Cuando se superan estos límites, la API devuelve un código de estado 429 Too Many Requests, junto con encabezados útiles como X-RateLimit-Limit, X-RateLimit-Remaining y Retry-After (segundos de época) para guiar tu estrategia de retroceso.

La implementación de asyncio te permite gestionar estos límites de tasa de manera mucho más efectiva. En lugar de un único hilo bloqueante que alcanza el límite, una aplicación asíncrona puede poner en cola las solicitudes de forma inteligente, implementar un retroceso exponencial y reintentar llamadas fallidas sin bloquear el flujo de toda la aplicación. Esto resulta en un consumo de API más fluido y menos interrupciones, asegurando que tus procesos de verificación de identidad permanezcan ininterrumpidos incluso durante las cargas máximas.

Implementando Asyncio para Llamadas Concurrentes a la API de Didit

La integración de asyncio con las APIs de Didit implica el uso de un cliente HTTP asíncrono como aiohttp. Aquí tienes un esquema conceptual de cómo podrías estructurar tus llamadas asíncronas a la API:


import asyncio
import aiohttp
import time

API_KEY = "YOUR_DIDIT_API_KEY"
BASE_URL = "https://verification.didit.me/v3/"

async def call_didit_api(session, endpoint, payload=None, method='POST'):
    headers = {
        'accept': 'application/json',
        'x-api-key': API_KEY
    }
    if method == 'POST':
        headers['content-type'] = 'application/json'

    url = f"{BASE_URL}{endpoint}"
    
    async with session.request(method, url, json=payload, headers=headers) as response:
        if response.status == 429:
            retry_after = int(response.headers.get('Retry-After', '5'))
            print(f"Rate limit hit. Retrying after {retry_after} seconds...")
            await asyncio.sleep(retry_after) # Implement simple backoff
            return await call_didit_api(session, endpoint, payload, method) # Retry
        response.raise_for_status()
        return await response.json()

async def create_verification_session(session, workflow_id, user_id):
    endpoint = "session/"
    payload = {
        "workflow_id": workflow_id,
        "vendor_data": user_id,
        "callback": "https://your-app.com/didit-callback"
    }
    return await call_didit_api(session, endpoint, payload, method='POST')

async def get_session_decision(session, session_id):
    endpoint = f"session/{session_id}/decision/"
    return await call_didit_api(session, endpoint, method='GET')

async def main():
    async with aiohttp.ClientSession() as session:
        tasks = []
        # Example: Create 10 verification sessions concurrently
        for i in range(10):
            tasks.append(create_verification_session(session, "YOUR_WORKFLOW_ID", f"user_{i}"))
        
        results = await asyncio.gather(*tasks)
        for res in results:
            print(f"Created session: {res.get('session_id')}")

        # Example: Retrieve decisions for some sessions concurrently
        decision_tasks = []
        for res in results[:5]: # Take first 5 for decision retrieval
            session_id = res.get('session_id')
            if session_id:
                decision_tasks.append(get_session_decision(session, session_id))
        
        decision_results = await asyncio.gather(*decision_tasks)
        for decision in decision_results:
            print(f"Session decision: {decision}")

if __name__ == "__main__":
    asyncio.run(main())

Este ejemplo demuestra cómo crear múltiples sesiones de verificación y recuperar sus decisiones concurrentemente. La función call_didit_api incluye un mecanismo básico de reintento para 429 Too Many Requests, utilizando el encabezado Retry-After para implementar un retroceso exponencial. Para sistemas de producción, se recomendaría un patrón más sofisticado de retroceso y disyuntor, pero esto ilustra el principio fundamental.

Al utilizar asyncio.gather, puedes iniciar múltiples solicitudes a la API simultáneamente, permitiendo que tu aplicación procese otras tareas o espere respuestas de forma concurrente, lo que conduce a ganancias significativas de rendimiento en comparación con las llamadas bloqueantes secuenciales.

Estrategias para la Verificación de Identidad de Alto Volumen

Lograr un alto rendimiento con las APIs de Didit utilizando Asyncio requiere más que simplemente realizar solicitudes concurrentemente. Considera estas estrategias:

  • Agrupación Inteligente (Smart Batching): Si bien la verificación central de Didit suele ser iniciada por el usuario, para operaciones como el monitoreo de AML o ciertas búsquedas de datos, podrías diseñar flujos de trabajo que permitan el procesamiento por lotes cuando sea aplicable, reduciendo el número total de llamadas a la API.
  • Limitación de Tasa Adaptativa: Más allá de un simple retroceso exponencial, implementa un limitador de tasa adaptativo que monitoree X-RateLimit-Remaining y ajuste el nivel de concurrencia de tus tareas de asyncio dinámicamente. Si las llamadas restantes son bajas, desacelera; si son altas, acelera.
  • Actualizaciones Impulsadas por Webhooks: Para los resultados de la sesión (por ejemplo, después de la verificación de ID o las comprobaciones de vivacidad), confía en los webhooks de Didit en lugar de un sondeo excesivo. Esto reduce el número de solicitudes GET a /v2/session/<id>/decision/, que tiene un límite de tasa más estricto de 100 RPM. La arquitectura modular de Didit significa que puedes configurar notificaciones de webhook para varios cambios de estado, enviando actualizaciones en tiempo real a tu sistema sin consultas constantes.
  • Manejo de Errores y Observabilidad: Implementa un manejo robusto de errores para problemas de red, errores de API (más allá de los 429) y tiempos de espera. Registra o alerta cuando se activen los reintentos o se alcancen constantemente los límites de tasa. Esto proporciona información crucial para optimizar tu estrategia de consumo de API.
  • Gestión de Recursos: Gestiona cuidadosamente tus instancias de aiohttp.ClientSession. Crear una nueva sesión para cada solicitud es ineficiente debido a la sobrecarga de conexión. Reutilizar una única sesión para múltiples solicitudes es generalmente la mejor práctica.

Cómo Ayuda Didit

Didit está diseñado desde cero para desarrolladores y aplicaciones de alto rendimiento, lo que lo convierte en un socio ideal para implementaciones de Python Asyncio. Nuestra arquitectura modular te permite conectar y usar verificaciones de identidad como Verificación de ID, Vivacidad Pasiva y Activa, Coincidencia Facial 1:1 y Detección de AML según sea necesario, cada una accesible a través de APIs limpias y bien documentadas. Esta modularidad significa que puedes orquestar flujos de trabajo de verificación complejos adaptados a tus necesidades específicas, y luego optimizar su consumo utilizando técnicas asíncronas.

Creemos en hacer que la verificación de identidad sea accesible, por lo que ofrecemos Free Core KYC. Esto te permite experimentar y construir tus integraciones asíncronas sin costos iniciales. Nuestro enfoque nativo de IA garantiza que nuestros servicios de verificación sean rápidos y precisos, complementando perfectamente los beneficios de velocidad de Asyncio. Sin tarifas de configuración y un modelo de pago por verificación exitosa, Didit proporciona una solución rentable y escalable para empresas que buscan implementar la verificación de identidad de alto rendimiento. Nuestro entorno de pruebas instantáneo y la documentación completa de la API empoderan aún más a los desarrolladores para integrar y optimizar rápidamente el uso de los servicios de Didit, ya sea que estés construyendo un nuevo sistema o mejorando uno existente.

¿Listo para Empezar?

¿Listo para ver Didit en acción? Obtén una demostración gratuita hoy mismo.

Comienza a verificar identidades gratis con el nivel gratuito de Didit.

Infraestructura para identidad y fraude.

Una API para KYC, KYB, Monitoreo de Transacciones y Detección de Fraude en Wallets. Intégrala en 5 minutos.

Pide a una IA que resuma esta página
Aumenta Rendimiento de API Didit con Python Asyncio.