Details

      Description

      We essentially provide a JTA-like implementation for using compensations. We would support distribution over Web services and REST via WS-BA and REST-JDI. This is similar in how we do distributed ACID transactions today; the application is developed against the JTA, but through configuration we enable distributed transactions over a particular transport (remoting, IIOP, WS).

      It would be good to have some subset of functionality that worked on a raw VM (i.e. no appserver). This would hopefully broaden the market.

      This first piece of work is to do some initial research and support an API with potentially a subset of features of the final API.

      Tasks:

      1. Investigate existing WS-BA APIs
        1. Try code examples if possible
      2. Produce an initial list of features that should be covered by the API
      3. Create a simple implementation backed by WS-BA.

      Implementation work, to complete this issue:

      1. Manage lifecycle of transaction via the @Compensatable annotation
      2. Allow Compensation and Completion handlers to be registered via annotations
      3. Mechanism for allowing application to mark the transaction as CompensateOnly
      4. Merge into Narayana code base
      5. OOTB support in WildFly

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                paul.robinson Paul Robinson
                Reporter:
                paul.robinson Paul Robinson
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 2 weeks
                  2w
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 1 week, 1 day, 6 hours Time Not Required
                  1w 1d 6h