Transactional Outbox
Buzón Transaccional
Una bandeja de salida transaccional guarda un cambio de datos y un registro de mensaje en una sola transacción de base de datos local. Un relé envía el mensaje guardado después de que la transacción se confirma.
local transaction(business row + outbox row) -> relay/CDC -> broker -> idempotent consumerorders✓order_2048outbox✓evt_784local transaction(business row + outbox row) -> relay/CDC -> broker -> idempotent consumerJOBOtro ejemplo
El proceso de pago guarda el pedido `984` y el evento de bandeja de salida `OrderCreated:984` en una sola transacción. Un relé publica el evento después. Si se detiene después de enviar pero antes de marcar la fila, podría enviarlo de nuevo. El consumidor elimina el duplicado por ID de evento.
Partes principales
- 01Cambio de datos comerciales
- 02fila de evento de outbox
- 03Una transacción local
- 04Relay o flujo de cambios
- 05publicación del corredor
- 06Consumidor seguro contra duplicados
Úsalo cuando
Úselo cuando un cambio de base de datos comprometido deba conducir de manera confiable a un mensaje o evento. Mantenga la bandeja de salida en la misma transacción y opere el relé como su propio proceso confiable.
No lo uses cuando
No llames entrega única o una transacción entre servicios. Planea para eventos repetidos, su orden, retraso en la transmisión, limpieza y manejo seguro de duplicados.
Nombre usado en código
local transaction(business row + outbox row) -> relay/CDC -> broker -> idempotent consumer 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.
Outcome: Complete the task with Buzón Transaccional (Transactional Outbox). User context: El proceso de pago guarda el pedido `984` y el evento de bandeja de salida `OrderCreated:984` en una sola transacción. Un relé publica el evento después. Si se detiene después de enviar pero antes de marcar la fila, podría enviarlo de nuevo. El consumidor elimina el duplicado por ID de evento. Technical concept or control: Buzón Transaccional (Transactional Outbox). Why it fits: Úselo cuando un cambio de base de datos comprometido deba conducir de manera confiable a un mensaje o evento. Mantenga la bandeja de salida en la misma transacción y opere el relé como su propio proceso confiable. Do not use it when: No llames entrega única o una transacción entre servicios. Planea para eventos repetidos, su orden, retraso en la transmisión, limpieza y manejo seguro de duplicados. 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 Buzón Transaccional (Transactional Outbox) is used now. Definition: Una bandeja de salida transaccional guarda un cambio de datos y un registro de mensaje en una sola transacción de base de datos local. Un relé envía el mensaje guardado después de que la transacción se confirma. 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.