[ 
https://issues.apache.org/jira/browse/TINKERPOP3-773?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stephen mallette updated TINKERPOP3-773:
----------------------------------------
             Assignee: stephen mallette  (was: Marko A. Rodriguez)
    Affects Version/s:     (was: 3.1.0-incubating)
                       3.0.0-incubating
           Issue Type: Improvement  (was: Task)

> Best approach to enforce mutation validations
> ---------------------------------------------
>
>                 Key: TINKERPOP3-773
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP3-773
>             Project: TinkerPop 3
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.0.0-incubating
>            Reporter: Asaf Shakarchi
>            Assignee: stephen mallette
>
> Hey,
> I am trying to find the most appropriate way to enforce some mutation 
> validations, I know this is a bit beyond Gremlin's playground but I dislike 
> the concept of enforcing validations on the vendor implementation to avoid 
> vendor lock, 
> Since graph wrappers are gone (Old T2 EventGraph was decorating everything so 
> it was easy) The only way I could think of is by leveraging the EventGraph 
> Strategy,
> So I hook into the events and throw exception if an illegal change occur so 
> as long as events are thrown before commit it should be fine (I use the 
> default event queue even when TX is available so it should be sufficient)
> I have some comments/questions though:
> 1) The EventGraph events are triggered only via traversal steps, so direct 
> G/V/E mutation are bypassed (i.e v.addEdge, direct modify/drop of 
> v.property()), I guess it's up to the implementation if to throw events or 
> not, or maybe we can do some AOP here... comments?
> 2) For the time being, I'll avoid invoking any mutating action out of the 
> traversal scope, but I can't find a simple way to add an edge to a vertex 
> without saving vertices in scopes,
> What is the replacement of v1.addEdge("knows", v2) via traversal ?
> btw the documentation is wrong under #addedge-step
> it shows a syntax such:
> g.V(1).addOutE('co-worker',g.V(2),'year',2009)
> but 2nd param of addOutE is a string,
> I would really appreciate your comments about whether this is a good approach 
> or there's a better alternative except hooking into vendor's specific 
> approaches directly.
> Thanks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to