es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La mejor arquitectura para eventos activados por tiempo en una arquitectura sin servidor.

Actualmente estoy diseñando un sistema sin servidor en el que quiero almacenar objetos que se utilizarán cuando el usuario lo defina. Por ejemplo, el usuario puede decir “este objeto hará x en 3 días”. El objeto se almacena en la base de datos y, después de 3 días, se realizará una acción con ese objeto.

Quiero que esto sea lo más en tiempo real posible. https://stackoverflow.com/questions/32222405/time-driven-events-architecture esta respuesta sugiere el uso de una cola de prioridad, lo que creo que es genial. Pero en una arquitectura sin servidor, ¿cómo puedo sacar objetos de esa cola de prioridad solo después de que pase el tiempo que el usuario estableció? La única forma en que puedo pensar para hacer esto ahora es verificar la cola periódicamente, pero parece que sería mejor si la cola de prioridad pudiera eliminarse y tomar medidas si el objeto en la parte delantera de la cola ha expirado.

Esto parece que podría funcionar https://aws.amazon.com/blogs/mt/build-scheduler-as-a-service-amazon-cloudwatch-events-amazon-eventbridge-aws-lambda/ pero me preocupa que sea excesivo o que no sea una solución perfecta que tenga problemas de escalabilidad.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    ¿Existe una mejor manera de hacer esto en una arquitectura sin servidor?

    Parece que estás buscando una forma de implementar un sistema de eventos impulsados por el tiempo en una arquitectura sin servidor. Una opción que podrías considerar es usar Amazon CloudWatch Events y Amazon EventBridge con AWS Lambda.

    CloudWatch Events te permite establecer reglas que desencadenan una función Lambda cuando ocurre un cierto evento. EventBridge te permite establecer reglas que desencadenan una función Lambda cuando ocurre un cierto evento. Puedes usar estos servicios para establecer reglas que desencadenen una función Lambda cuando pase el tiempo establecido por el usuario. La función Lambda puede luego retirar el objeto de la cola de prioridad y tomar acción.

    Esta solución debería ser capaz de escalar con tu sistema y proporcionar la funcionalidad en tiempo real que estás buscando.

Comments are closed.