Idempotencia
La plataforma Devprime ofrece un enfoque de idempotencia automática que permite controlar comandos duplicados en solicitudes HTTP/gRPC y servicios de transmisión (Kafka, RabbitMQ).
Al desarrollar un nuevo proyecto basado en la tecnología y la arquitectura de software moderna de la plataforma Devprime, que ofrece aceleradores con implementaciones de código listas para producción y componentes con comportamientos inteligentes, los proyectos tendrán acceso a potentes funciones que incluyen observabilidad (registros, rastreo distribuido, métricas), reintento, corte de circuito, resiliencia, aceleración y simplificación del desarrollo de sistemas distribuidos.
Los componentes de Devprime Stack que forman parte de la plataforma Devprime implementan estrategias modernas de sistemas distribuidos, como el enfoque de observabilidad con registros, seguimiento distribuido y métricas automáticas, que son compatibles con Open Telemetry.
Los logs se generan automáticamente e incluyen información como el ID de solicitud, el ID de correlación y el ID de seguimiento, lo que permite la trazabilidad entre diferentes réplicas y facilita la indexación y búsqueda de estos ID en las principales herramientas del mercado. Esto ayuda a mantener el control y la visibilidad de las operaciones en entornos distribuidos y escalables.
Los adaptadores de flujo, estado y servicios proporcionan estrategias de reintento, interrupción de circuito y resistencia cuando corresponda, lo que permite a los desarrolladores de software crear sistemas más sólidos y resistentes.
En el ejemplo siguiente, el adaptador de secuencia inicia la estrategia de reintento debido a una interrupción en el servicio “RabbitMQ” y, a continuación, abre un corte de circuito para proteger los procesos de la aplicación debido a un error temporal de la infraestructura.
|
|
En esta estrategia de resistencia, se implementa una reserva para controlar las situaciones de error en un servicio o componente. Cuando se produce un error, se activa la reserva, lo que permite que la aplicación siga funcionando correctamente o proporcione una alternativa al usuario. Esto ayuda a garantizar la disponibilidad y la capacidad de respuesta de las aplicaciones, incluso en escenarios adversos.
Inicio de la resiliencia después de recibir un POST con el adaptador en el disyuntor
Al analizar la línea 16, es posible observar el estado “No entregado” en el envío del evento, y luego, en la línea 26, vemos la información del inicio de la resiliencia, preservando el evento en un respaldo local.
|
|
Apagar el disyuntor en el retorno de RabbitMQ, recuperar el evento y enviarlo a la cola de RabbitMQ
Al analizar la línea 1, el disyuntor se cambia al estado “Desactivado”, lo que permite que el proceso de resistencia recupere el evento y, finalmente, lo entregue de forma segura al servicio RabbitMQ.
|
|
La plataforma Devprime ofrece un enfoque de idempotencia automática que permite controlar comandos duplicados en solicitudes HTTP/gRPC y servicios de transmisión (Kafka, RabbitMQ).
La plataforma Devprime ofrece una función integrada para permitir transacciones locales con bases de datos y se puede utilizar junto con SqlServer, MongoDB, MySQL, PostgreSQL, Oracle.
Devprime Distributed Services es un producto de la plataforma Devprime que permite orquestar transacciones distribuidas entre microservicios mediante el enfoque de patrones de Saga y prácticas de arquitectura basadas en eventos.