El contexto
PearTV es un producto interno, diseñado y financiado por Wisepear techlab. No es un encargo de cliente: es nuestro banco de pruebas, y el proyecto donde ponemos a prueba a gran escala las decisiones de arquitectura que proponemos después en otros sitios.
Una plataforma de streaming completa: agregación de contenidos, catálogo enriquecido, recomendaciones y aplicaciones para móvil, televisión conectada y web.
El reto
Un servicio de streaming plantea problemas que no se encuentran en una aplicación de gestión clásica.
El catálogo nunca es estable. Los contenidos proceden de más de cuarenta fuentes distintas, cada una con su formato, su fiabilidad y sus interrupciones. Una fuente que cambia de estructura de un día para otro no debe tumbar el catálogo entero.
Los metadatos hacen el producto. Un catálogo sin carteles, sin sinopsis, sin géneros coherentes es inutilizable, sea cual sea la calidad de los flujos. El trabajo de enriquecimiento y de eliminación de duplicados representa una parte considerable del sistema.
Tres soportes, tres ergonomías. Una aplicación de televisión se maneja con un mando a distancia, a tres metros de la pantalla, sin introducción de texto cómoda. No es la versión ampliada de la aplicación móvil: es un diseño aparte, que sin embargo debe apoyarse en la misma API.
Lo que hicimos
- Un back-end Django con el catálogo, la agregación, el enriquecimiento de los metadatos y la personalización, expuesto como API REST común a todos los clientes.
- Una recogida tolerante a fallos, con cada fuente aislada: una fuente que falla degrada su propio ámbito, nunca el servicio.
- Una aplicación Android y una aplicación de televisión conectada, diseñadas por separado para sus respectivas restricciones, sobre la misma API.
- Una interfaz web que completa el conjunto.
- La explotación del servicio a lo largo del tiempo — es explotando nosotros mismos un producto durante cuatro años como se aprende qué cuesta caro en mantenimiento y qué no hay que proponer a un cliente.
El resultado
Un producto acabado, desarrollado a lo largo de cuatro años, con más de setecientas entregas acumuladas en el back-end y las aplicaciones.
Lo que PearTV nos aporta es difícil de resumir en un folleto, pero se comprueba con los clientes: hemos diseñado, entregado y después explotado un sistema distribuido a lo largo del tiempo. Sabemos, por tanto, cuánto cuesta una arquitectura una vez está en producción — y no solo lo que promete sobre el papel.
Es también de este proyecto de donde vienen nuestros reflejos sobre los sistemas que dependen de fuentes externas: aislar, degradar con elegancia y no dejar nunca que un fallo externo se convierta en una avería visible para el usuario.
Capturas