Product

Novedades semanales del producto: notificaciones mejoradas para los límites de email

Las notificaciones por email ahora te alertan antes de alcanzar tu límite. Más información...
Imagen para Novedades semanales del producto: notificaciones mejoradas para los límites de email

Mailgun te permite enviar millones de emails al mes, pero para muchos desarrolladores que crean la próxima app que dominará el mundo, es una cifra demasiado alta para empezar. Por eso, para facilitarte la vida si utilizas nuestro plan gratuito para pruebas y desarrollo, o una plataforma como Heroku o EngineYard que limita el volumen de emails mensual, hemos mejorado las notificaciones por email para que recibas una alerta antes de alcanzar tu límite.

Las notificaciones por email ahora te alertan antes de alcanzar tu límite

Si tienes un plan de Mailgun que incluye un límite de envío explícito, siempre te hemos enviado una notificación por email una vez alcanzado tu límite de emails. Sin embargo, eso no te da mucho margen para planificar. Así que, a partir de esta semana, también enviamos notificaciones en cuanto vemos que te acercas a tu límite. En concreto:

  • Los clientes de nuestro plan gratuito reciben notificaciones al alcanzar el 75 % de su límite diario
  • El resto de clientes con planes limitados (como Heroku o EngineYard) reciben notificaciones al alcanzar el 75 % y el 95 % de su límite mensual

Es una pequeña mejora, pero esperamos que te ayude a planificar mejor la dominación mundial.

Si te interesa saber cómo hemos creado notificaciones con alta fiabilidad y escalabilidad, esta parte es para ti

Enviar una notificación una vez que un cliente alcanza el 75 % de su límite de envío parece fácil, y conceptualmente lo es. Lo complicado, sin embargo, fue convertir esto en un sistema fiable y escalable que funcione bien para miles de clientes que envían millones de emails al día. Cuando analizamos el problema por primera vez, adoptamos el enfoque obvio: añadir un campo a nuestra base de datos de clientes basada en MongoDB e incrementar el contador por cada email enviado.

Pero al darnos cuenta de la carga que esto supondría para nuestro MongoDB (que no funciona bien con una cifra tan alta de escrituras por segundo), supimos que teníamos que adoptar un enfoque distinto.

Un sistema basado en actores desacopla los procesos para un mayor rendimiento

En lugar de complicar nuestra base de datos principal, en la que nos gusta escribir solo cuando es absolutamente necesario, hemos implementado un sistema basado en actores que desacopla la mayoría de los eventos de nuestra base de datos principal. Al desacoplar los eventos en diferentes sistemas especializados, Mailgun es mucho más eficiente, más fácil de programar y más resistente. Existen muchos motivos para ello, pero uno es que los diferentes procesos pueden ejecutarse en máquinas distintas, lo que significa que si hay un problema con un proceso, no afecta a otro. ¿Cómo funciona esto?

Básicamente, Mailgun es solo una serie de eventos. Entregas. Rebotes. Aperturas. Clics. Cuando ocurre cualquiera de estos eventos, lo registramos. A continuación, se pueden configurar diferentes procesos para que hagan algo con esos eventos. Por ejemplo, cuando se produce un evento de «entregado», tenemos un proceso que puede enviar una notificación a un cliente a través de un webhook.

O, en el caso de las notificaciones de límite de email, funciona de la siguiente manera:

  1. Mailgun entrega y recibe emails, lo que genera eventos.
  2. Cada uno de estos eventos se envía a Redis, un almacén clave-valor que es ideal para crear colas de eventos.
  3. Luego tenemos un proceso independiente, que llamamos Watchdog, que solo escucha estos eventos y calcula, por ejemplo, si el cliente ha alcanzado o no el límite de email de su plan.
  4. Después tenemos otro proceso que se encarga de enviar el mensaje o, en los casos en los que el cliente haya superado su límite, desactiva la cuenta.

Cada proceso hace una sola cosa muy bien. Hay pocas piezas móviles y es fácil de escalar. ¡Todo son ventajas!

Bueno, eso es todo por esta semana. Esperamos que te gusten las nuevas notificaciones de eventos y que hayas aprendido un poco sobre nuestra forma de desarrollar en Mailgun.

Felices envíos,

El equipo de Mailgun