This is a somewhat related feature I'm been thinking about:

A common use case is to integrate neo4j with other databases, like lucene.
One way to do this by using two phase commit, which has its advantages
and disadvantages.
Another solution would be to use an eventually consistent strategy,
meaning that the other database (lucene)
polls neo4j and update the index instead of the other way around.
It would be great to expose an API for reading what events has been
generated and in what order - a playback of all transactions that has
been committed.
By using this API one can also implement a REST/Atom protocol which
would allow replication of the node space to other machines.

Cheers
Andreas

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
>
_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to