For example we could have an outbox table: - Transaction starts; - Change/delete a row (Output Gate

For example we could have an outbox table:

  • Transaction starts;
  • Change/delete a row (Output Gate closed);
  • Send the message to an external system (Request blocked by the Output Gate. Deadlock?);
  • Receive a response;
  • Transaction commit/rollback depending on the response;
This should have at-least once delivery guarantee, so it would be ok to send the same message again in the case of failure to complete the transaction or SRS failing to make writes durable.
Was this page helpful?