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

Reply via email to