Skip to content

RFC: Persist state across Sage executions #9

@AndrewDryga

Description

@AndrewDryga

We can add a persistence adapter for Sage. The main goal of implementing it is to let users recover after node failures, making it possible to get better compensation guarantees. As I see it we need:

  1. Ability to use adapters (probably Ecto and RabbitMQ) to persist execution stages;
  2. Callbacks/Behaviour to define loader that resumes persistent compensations that are not completed.
  3. We need to make sure that compensations are processed "exactly once", or "at least once" (we need to take a tradeoff here).

This mechanism should be prone to network errors, eg. we should persist a state before executing a transaction, so that even if the node is restarted, compensation (even trough without knowing anything about the effect) would still start, potentially on another node.

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