You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@usergrid.apache.org by "Todd Nine (JIRA)" <ji...@apache.org> on 2014/06/03 19:48:01 UTC

[jira] [Created] (USERGRID-163) [SPIKE] Prototype an eventually consistent unit of work structure

Todd Nine created USERGRID-163:
----------------------------------

             Summary: [SPIKE] Prototype an eventually consistent unit of work structure
                 Key: USERGRID-163
                 URL: https://issues.apache.org/jira/browse/USERGRID-163
             Project: Usergrid
          Issue Type: Story
          Components: Stack
            Reporter: Todd Nine
            Assignee: Todd Nine


For our new persistence mechanism, we need a way to compose operations as a functional unit of work.

*Programming/Functional requirements*

# A caller can compose multiple operations into a unit of work.
# All operations must succeed or fail as part of the unit of work
# The caller can register a callback handler, or listen on a future type system for a response.

Example: 

Action 1: Write User
Action 2: Index User
Action 3: Write Project
Action 4: Index Project
Action 5: Create Edge between User and Project
Action 6: Index Project on edge User--"owns"--> Project

All actions must succeed or fail.

*Operational Requirements*

# Units of work are durable.  They must survive a node death and be retried on another node.
# Units of work are bound.  The execution capacity of these units of work must be configurable.  JMX realtime configuration is a plus.
# Units of work must be realtime.  If a unit of work cannot be executed due to capacity limitations or sub system errors it must fail fast.
# Units of work can be concurrent.  In the event the work is a long running process, we want to distribute these processes in a master/worker scheme across the cluster.




--
This message was sent by Atlassian JIRA
(v6.2#6252)