Backend, datos y seguridad Más detalle C · Convención de la industria Plataforma: Web

Saga Pattern

Patrón de Saga

Una saga enlaza varios pasos guardados en un único trabajo empresarial. Si un paso posterior falla, se reintenta o se agrega otro paso para corregir lo sucedido anteriormente.

Ver cómo funciona
Podrías llamarlo Saga Patternsaga distribuidaflujo de trabajo sagatransacción saga

Ver cómo funciona

Ejemplo trabajado originalPatrón de Saga
Estado y recuperaciónPatrón de Sagasaga ID + local transaction -> next step; failure -> retry | compensation -> terminal state
RESERVA DE VIAJEhotel fallido
  1. ✓Vuelo retenidoflight_tx_7
  2. ✓Tarjeta cobradapay_tx_8
  3. !Hotel no disponiblehotel_tx_9
↶ Compensación completadasaga: cancelled
MANTENER SEGUROCada servicio confirma un paso local y guarda lo que pasó.RECUPERARReintentar trabajo pendiente o ejecutar acciones compensatorias explícitas.
saga ID + local transaction -> next step; failure -> retry | compensation -> terminal stateJOB
Patrón de SagaFiabilidad del backend

Otro ejemplo

El pedido `984` reserva stock, autoriza NT$248 y luego solicita el envío. El envío rechaza la dirección. La saga anula la autorización y libera el stock con el mismo ID de saga. Luego registra el pedido como compensado.

Partes principales

  1. 01ID y estado de Saga
  2. 02servicios participantes
  3. 03Transacciones locales
  4. 04mensajes de resultado
  5. 05Repetición o compensación
  6. 06Auditoría y recuperación manual

Úsalo cuando

Use una saga cuando un trabajo empresarial abarque servicios o almacenes de datos. Úsela solo cuando un paso de base de datos de todo o nada no pueda cubrir todo el trabajo. Defina cada paso guardado, la siguiente acción, reintento, acción correctiva y estado final.

No lo uses cuando

No agregues una saga cuando un solo guardado en la base de datos puede completar todo el trabajo. Una acción de corrección es un trabajo nuevo. Puede fallar o dejar un resultado diferente. Pregunta a una persona cuando una acción sea insegura de revertir.

Nombre usado en código

saga ID + local transaction -> next step; failure -> retry | compensation -> terminal state

Antes de lanzarlo

Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.

Solicitud que puedes copiar

Outcome: Complete the task with Patrón de Saga (Saga Pattern). User context: El pedido `984` reserva stock, autoriza NT$248 y luego solicita el envío. El envío rechaza la dirección. La saga anula la autorización y libera el stock con el mismo ID de saga. Luego registra el pedido como compensado. Technical concept or control: Patrón de Saga (Saga Pattern). Why it fits: Use una saga cuando un trabajo empresarial abarque servicios o almacenes de datos. Úsela solo cuando un paso de base de datos de todo o nada no pueda cubrir todo el trabajo. Defina cada paso guardado, la siguiente acción, reintento, acción correctiva y estado final. Do not use it when: No agregues una saga cuando un solo guardado en la base de datos puede completar todo el trabajo. Una acción de corrección es un trabajo nuevo. Puede fallar o dejar un resultado diferente. Pregunta a una persona cuando una acción sea insegura de revertir. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Ningún estándar oficial único controla todo el término. Su significado puede cambiar según equipos, plataformas o marcos. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.

Revisa esta petición

Review how Patrón de Saga (Saga Pattern) is used now. Definition: Una saga enlaza varios pasos guardados en un único trabajo empresarial. Si un paso posterior falla, se reintenta o se agrega otro paso para corregir lo sucedido anteriormente. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.

C
Qué tan oficial es este término?

Convención de la industria

La gente a menudo usa este término en el trabajo. Las fuentes listadas pueden apoyar la práctica o las limitaciones. No definen cada parte del término.

Ningún estándar oficial único controla todo el término. Su significado puede cambiar según equipos, plataformas o marcos.

Alcance
Solo lo que cubre la fuente:nombre canónico、definición、implementación、orientación de uso、guía para evitarlo
Estado del documento
estable
Comprobado el
2026-07-30

Fuentes de evidencia y alcance

Fuente de autoridad + Referencia del término · Amazon Web Services · estable Saga patterns Alcance: nombre canónico、definición、implementación、orientación de uso、guía para evitarlo Rol aquí: Referencia de término directo La fuente cubre: nombre canónico, definición, implementación, orientación de uso, guía para evitarlo Origen del fondo Azure Architecture Center — Compensating Transaction pattern Rol aquí: Información útil, no una definición

Cópialo tú mismo

El navegador no pudo copiar esto. Selecciona la solicitud a continuación y cópiala tú mismo.