Las necesidades del cliente
El cliente requería una solución que fuera mucho más allá del envío clásico de notificaciones push. Necesitaba un sistema que permitiera comunicar información relevante a los usuarios de forma dinámica, segura y controlada, con la capacidad de ejecutar acciones específicas al recibir un mensaje. Además, era imprescindible contar con un sistema de autenticación robusto que garantizara que solo usuarios verificados pudieran acceder a las funcionalidades del servicio. El cliente también buscaba una solución confiable que asegurara la entrega puntual y precisa de cada notificación, incluso en escenarios de alto volumen o múltiples dispositivos conectados.
Mi solución
Para resolver este desafío, desarrollé Asistente de Notificaciones, un servicio backend capaz de enviar tanto notificaciones push simples como mensajes enriquecidos que activan acciones concretas en el front-end receptor. Esto permite a las aplicaciones que lo integren no solo informar al usuario, sino también modificar comportamientos de la interfaz, mostrar contenido contextual o disparar funcionalidades específicas según el mensaje recibido. La seguridad fue una prioridad desde el inicio. Por eso implementé OAuth como sistema de autenticación, permitiendo que solo usuarios autorizados puedan acceder a las rutas del servicio, manteniendo los datos protegidos y controlando el flujo de mensajes. Para la mensajería, integré Firebase Cloud Messaging, un sistema confiable, eficiente y ampliamente probado, que se encarga de que cada notificación llegue al dispositivo correcto, sin pérdida ni retrasos. Todo el servicio fue construido con tecnologías modernas, orientado a la escalabilidad y con una arquitectura sólida, lista para crecer junto con los proyectos que lo integren. Sin embargo, ningún desarrollo está completo sin una buena anécdota: durante las primeras pruebas internas, cometimos un pequeño error que desencadenó un bucle infinito de envío de notificaciones. Los usuarios de test comenzaron a recibir cientos de notificaciones idénticas en cuestión de segundos, hasta el punto en que sus dispositivos se volvieron inusables, vibrando sin parar hasta que detuvimos manualmente el servidor. Fue caótico, pero también una experiencia invaluable que nos recordó la importancia de implementar validaciones sólidas y mecanismos de control desde el inicio.
Información Técnica
Tecnologías utilizadas:
- Backend: Node.js + Express
- Lenguaje: TypeScript
- Base de datos: MongoDB
- Mensajería: Firebase Cloud Messaging
- Autenticación: OAuth
Más información:
El corazón del sistema está desarrollado con Node.js y Express, lo que garantiza una base sólida y liviana para el manejo de peticiones. Toda la lógica está escrita en TypeScript, lo que permite mantener un código robusto y tipado desde el backend. Los datos se almacenan en MongoDB, ideal para manejar estructuras flexibles y escalar según la carga. Firebase Cloud Messaging se encarga del transporte seguro de cada mensaje hasta el dispositivo final, mientras que OAuth protege las rutas y asegura que cada acceso sea válido y autorizado.