Skip to content

Make transaction dispatch idempotent and reconcile unknown outcomes #798

Closed

Description

@StuartFerguson

Summary

Prevent duplicate transactions when dispatch responses are lost or the watcher retries an upload.

Required behavior

  • Derive a stable idempotency key from the file ID and line identity.
  • Pass the idempotency key through to the Transaction Processor.
  • Make repeated delivery of the same file and line idempotent.
  • Distinguish definite rejection from an unknown remote outcome.
  • Reconcile timeouts before retrying.
  • Persist the remote transaction ID and outcome when available.

Acceptance criteria

  • Replaying the same file does not create a second transaction.
  • Retrying after a timeout safely finds or reuses the original transaction.
  • Tests cover lost responses, repeated submissions, restarts, and concurrent retries.

Related issues

Activity

  1. changed the title [-]System.Collections.Hashtable.Title[/-] [+]Make transaction dispatch idempotent and reconcile unknown outcomes[/+] on Sep 17, 2026
  2. StuartFerguson commented on Sep 17, 2026

    @StuartFerguson
    MemberAuthor

    This is not an issue for the File Processor, the event id is now passed over so the Transaction processor can use that in protection

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions