There certainly should be an onBeforeSuccess event, that can roll back the current transaction. I would like to maintain a graph that is guaranteed to be consistent with the MetaModel, so having a log of violations wouldn't be good enough.
Kind regards, Niels Hoogeveen > From: tobias.ivars...@neotechnology.com > Date: Wed, 31 Mar 2010 14:43:24 +0200 > To: user@lists.neo4j.org > Subject: Re: [Neo] Requirements for an event framework for Neo4j > > Yes. I can tick of one of the use cases on my list of expected ones. > > I would like some more input on this though. I'm assuming that you would > want proactive event handlers for building this. That would enable you to > reject changes if the MetaModel validator doesn't accept them. Or would it > be enough to be able to output a log message about there being a change that > violated the validation? > > Cheers, > Tobias > > On Wed, Mar 31, 2010 at 1:54 PM, Niels Hoogeveen > <pd_aficion...@hotmail.com>wrote: > > > > > A use case I have mentioned earlier on this list is a MetaModel validator. > > Such a component should be triggered on transaction success to validate the > > added/deleted relationships, nodes and properties, and the updated property > > values. It's an open question to me, whether every change event should be > > logged by the validator, or if the validator can somehow get a set of > > nodes/relationship/properties from Transaction with those entities that have > > been touched within that transaction. > > > > The nicest solution from my point of view would be that the onSuccess event > > has a property touchedNodes, which is a list of node facades, where only the > > immutable methods of Node are implemented, and where the return value of > > each method returns an immutable value. > > > > The book keeping with respect to transactions is already done within the > > transactions, so logging all changes once more for a validator seems a waste > > of cycles and memory. So, to me an event with a reference to this change > > log, would seem the nicest solution. > > > > Kind regards, > > Niels Hoogeveen > > > > > From: tobias.ivars...@neotechnology.com > > > Date: Wed, 31 Mar 2010 12:39:25 +0200 > > > To: user@lists.neo4j.org > > > Subject: [Neo] Requirements for an event framework for Neo4j > > > > > > Fellow developers! > > > > > > The time has come to start the work on an event framework for Neo4j. In > > > order to do a good work at this we would get input on what requirements > > you > > > have on an event framework. We would like to get a list of use cases for > > > which you would use an event framework, along with the features you think > > > the use case would need from the event framework (i.e. which events you > > > would like to receive notification about, and when). We would also like > > you > > > to motivate why these features are required by the use case. Events can > > > easily degrade performance if the framework is ill designed, so we would > > > like to keep things very lean. > > > > > > We have made some early analysis and arrived at the following > > conclusions: > > > > > > * There can be two kinds of event handlers: Proactive event handlers and > > > Reactive event handlers. > > > Proactive event handlers have the ability to preempt operations and > > Reactive > > > event handlers simply react to an event and cannot cause the event to not > > > succeed. > > > > > > * There are three kinds of events in Neo4j kernel: > > > - Lifecycle events, such as shutdown. > > > - Transactional events, such as start commit, commit successful, > > rollback, > > > etc. > > > - Data modification events, such as node created, property changed, > > > relationship removed, etc. > > > > > > It might be possible that other components, such as the indexing > > component, > > > would want to add more events to the event framework. > > > > > > These are of course just some initial input to get your thoughts going, > > feel > > > free to think outside of the constraints above. Our ultimate goal is to > > > create an event framework that is as useful as possible while maintaining > > > > > > -- > > > Tobias Ivarsson <tobias.ivars...@neotechnology.com> > > > Hacker, Neo Technology > > > www.neotechnology.com > > > Cellphone: +46 706 534857 > > > _______________________________________________ > > > Neo mailing list > > > User@lists.neo4j.org > > > https://lists.neo4j.org/mailman/listinfo/user > > > > _________________________________________________________________ > > New Windows 7: Find the right PC for you. Learn more. > > http://windows.microsoft.com/shop > > _______________________________________________ > > Neo mailing list > > User@lists.neo4j.org > > https://lists.neo4j.org/mailman/listinfo/user > > > > > > -- > Tobias Ivarsson <tobias.ivars...@neotechnology.com> > Hacker, Neo Technology > www.neotechnology.com > Cellphone: +46 706 534857 > _______________________________________________ > Neo mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/ _______________________________________________ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user