• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

160
Views
¿La mejor práctica para hacer una reversión dentro de la actualización de varias fases?

tenemos un objeto de datos cuyos atributos se distribuyen entre 3 partes,

  1. un servicio interno usando http
  2. nube
  3. base de datos

Cuando se trata de actualizar los datos de ese objeto, no queremos dejar el objeto parcialmente actualizado. Entonces, si todas las partes están involucradas en la actualización, lo haremos

 1 -> 2 -> 3

secuencialmente. Pero si la actualización es exitosa en el paso 1 y falla en el paso 2, entonces debemos revertir el paso 1; si los pasos 1 y 2 son exitosos y el paso 3 falla, entonces los pasos 1 y 2 deben revertirse. Esta es una aplicación spring boot 1.4, Java 8. ¿Hay alguna forma elegante de lograrlo programáticamente, en lugar de intentar/atrapar en los pasos 2 y 3?

Espero explicarlo bien. Cualquier ayuda/pista es muy apreciada

about 3 years ago · Santiago Trujillo
2 answers
Answer question

0

Hay patrones de integración que podría echar un vistazo, y bibliotecas que implementan estos patrones para usted, como Apache Camel, o productos patentados como Mule (creo que es costoso, probablemente nunca elegiría eso), o un flujo de gestión de procesos comerciales. , pero todas estas son decisiones de diseño que tendrá que tomar usted mismo. Puede estar perfectamente bien decidir no utilizar ninguno de estos enfoques más pesados. Hay mucho por ahí sobre integración, puede consultar ese campo tanto como necesite para encontrar una solución adecuada, pero no invertiría demasiado tiempo en eso, solo averigüe qué será lo suficientemente bueno.

Nota: es posible que encuentre material sobre transacciones distribuidas, y encontrará personas que creen en ellas, al igual que algunas personas creen en el conejo de Pascua cuando eran niños. No voy a decirles que no son reales (habiéndolo hecho en el pasado, he recibido votos negativos):), pero solo diré que todavía tengo que presenciarlos, y no espero hacerlo.

about 3 years ago · Santiago Trujillo Report

0

Si entendí bien, la primera y la segunda llamada están fuera de su alcance y no puede simplemente retroceder fácilmente como lo hace en una transacción DB. Puede aplicar un patrón de compensación para compensar lo que ya se actualizó.

  • Debe almacenar el estado de su objeto antes del proceso de actualización.
  • Si algo sale mal en el paso 2 o 3, se activará un controlador de compensación para revertir los cambios (hará una actualización con el estado anterior).
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error