AirHelp, Tecnología para el líder en defensa de los derechos de los pasajeros
AirHelp fue fundada en 2013 como una start-up y se ha convertido en el líder mundial en la defensa de los derechos de los pasajeros aéreos, ayudando a más de 13 millones de personas a comprender sus derechos y reclamar compensación por vuelos retrasados, cancelados o con overbooking. La empresa no solo apoya a los pasajeros durante el proceso de compensación, sino que también lucha por la justicia representándolos en disputas legales con aerolíneas y ejerciendo presión para obtener regulaciones justas a nivel gubernamental. Como desarrollador, diseñé e implementé el sitio web de AirHelp, combinando funcionalidades avanzadas con optimización técnica para satisfacer las necesidades de una base de usuarios global. A continuación, detallo los aspectos del proyecto, los desafíos de rendimiento y las soluciones.
El propósito de AirHelp y su audiencia
El sitio web de AirHelp fue creado para una empresa cuya misión es educar a los pasajeros aéreos sobre sus derechos, simplificar el proceso de compensación y proporcionar apoyo legal en 24 idiomas. La plataforma atiende tanto a personas que desconocen sus derechos o carecen del tiempo para actúar por sí mismas, como a una comunidad más amplia, gracias a la colaboración con bufetes de abogados en 30 países y un equipo de 700 empleados, incluyendo el grupo más grande del mundo de abogados especializados en derecho aéreo. Mi tarea fue crear un sitio web intuitivo y escalable que respalde estos objetivos con una infraestructura técnica moderna.
Características técnicas de AirHelp
Como parte del proyecto, junto con un equipo de 5 personas que lideré como Team Pilot, implementé componentes técnicos específicos para cumplir con los requisitos de AirHelp:
- Multilingüe y Accesibilidad, Arquitectura frontend con Next.js y framework SSR, compatible con 24 idiomas a través de i18n, conforme con WCAG 2.1 y optimizada para dispositivos móviles y de escritorio.
- Proceso de Compensación, Formulario de solicitud con carga dinámica de datos de vuelo a través de GraphQL, integración con APIs de aerolíneas y registro de transacciones en base de datos PostgreSQL con cifrado AES-256.
- Educación del Pasajero, Sección informativa con artículos legales cargados a través de REST API con caché en Redis y renderizados en React para un rendimiento estable.
- SEO Técnico, Optimización para palabras clave (por ejemplo, “compensación por vuelo retrasado”), sitemaps XML dinámicos e indexación acelerada a través de Google Indexing API.
- Copias de Seguridad y Alta Disponibilidad, Copias de seguridad automáticas en Amazon S3 con replicación regional, versionado y compresión Zstandard para continuidad operativa.
- Rendimiento, Caché del lado del servidor con Redis, Server Side Rendering, optimización de medios a través de Cloudflare con formato AVIF y soporte para HTTP/3 con QUIC.
- Panel de Usuario, Panel de seguimiento del estado de las solicitudes con datos en tiempo real a través de WebSocket, con caché en Memcached para baja latencia.
Desafíos de rendimiento y soluciones
Durante la implementación de AirHelp, encontré varios desafíos clave de rendimiento que se resolvieron de la siguiente manera:
- Carga de Base de Datos con Millones de Usuarios, Un gran número de solicitudes causaba sobrecarga en la base de datos PostgreSQL. Solución: implementé Redis para caché persistente de consultas y sharding de base de datos con réplicas de lectura en Amazon RDS para distribución de carga.
- Carga Lenta del Formulario de Solicitud, La integración con APIs de aerolíneas causaba retrasos durante picos de tráfico (por ejemplo, después de cancelaciones masivas de vuelos). Solución: utilicé RabbitMQ para procesamiento asíncrono de consultas API, con fallback a datos estáticos en caché de Elasticsearch durante timeouts.
- Alta Latencia de Multimedia, Imágenes y gráficos educativos ralentizaban el sitio en dispositivos móviles en regiones con conectividad débil. Solución: utilicé Fastly CDN con compresión Brotli, formato WebP y lazy loading a través de Intersection Observer API, junto con geo-optimización para distribución más rápida.
- Retrasos en el Panel en Tiempo Real, Las actualizaciones de estado a través de WebSocket no escalaban con 13 millones de usuarios. Solución: implementé Kafka para streaming de datos en tiempo real con throttling del servidor y balanceador de carga AWS ALB para distribución uniforme del tráfico.
- Caché Desactualizada en Cambios, El nuevo contenido y los estados no se actualizaban inmediatamente debido al caché agresivo. Solución: implementé Varnish con VCL personalizado, purga en webhooks y Edge Side Includes para secciones dinámicas, con caché busting adicional mediante versionado de URL.
- Alta Demanda de Recursos en Horas Pico, El sitio experimentaba sobrecargas durante interrupciones masivas de vuelos. Solución: configuré auto-scaling en AWS EC2 con CloudWatch para monitorear la carga, añadiendo Cloudflare Rate Limiting para protección contra tráfico de bots.
Tecnologías utilizadas
Para construir y mantener AirHelp, utilicé las siguientes tecnologías:
- Yoast SEO, Optimización de metadatos, sitemaps XML dinámicos y notificaciones a motores de búsqueda sobre actualizaciones.
- UpdraftPlus, Copias de seguridad automáticas en Amazon S3 con replicación y cifrado AES-256.
- Cloudflare, CDN con Argo Smart Routing, compresión Brotli y protección DDoS mediante rate limiting.
- Redis, Caché en memoria con sharding para sesiones, formularios y paneles de control.
- Varnish, Caché del lado del servidor con VCL personalizado, grace mode y ESI para bloques dinámicos.
- Lighthouse, Auditorías de Core Web Vitals integradas con CI/CD en Jenkins.
- RabbitMQ, Cola de tareas como procesamiento de API y entrega de correo electrónico, con reintentos y dead letter queue.
- Elasticsearch, Búsqueda de vuelos y contenido con fuzzy matching y agregación de datos.
- Fastly, CDN para distribución paralela de medios con geo-optimización.
- Kafka, Streaming de datos en tiempo real con particionamiento para escalabilidad.
Gestión y soporte técnico
AirHelp es un proyecto que requiere optimización y soporte continuos. Actualizo regularmente el sistema y los plugins, probando los cambios en un entorno de pruebas con copias de seguridad en Amazon S3. Cloudflare, Redis y Fastly garantizan el rendimiento con tráfico global, mientras que Varnish, RabbitMQ y Kafka estabilizan los procesos dinámicos. Monitoreo el rendimiento usando Elasticsearch y CloudWatch, optimizo consultas SQL/NoSQL con índices complejos y gestiono el caché cuando se producen cambios. La plataforma puede ampliarse con integraciones a sistemas ERP, un módulo de IA para análisis de vuelos o una sección de informes legales, apoyando la misión de AirHelp de luchar por los derechos de los pasajeros.
