Hi, Tobias.

That's awesome news.

A few general questions regarding an event framework for Neo4J...

- In the current implementation, there's a thread affinity for transactions.
I am guessing that this could create big challenges for "proactive" handlers
that are potentially executed on a different thread?

- Will the handlers be synchronous or asynchronous?

- Also, another consideration is whether or not you want to provide support
for event "folding" for chatty changes to properties on nodes/relationships
(e.g. you choose the quality of service - all changes or most recent changes
only if you haven't yet processed the mutation event).

- What do you envision passing along with events?  A full "copy" of the
node/relationship?  Only the mutated property?  

- Would there be support for "bucketed" notifications that would allow
notifications on multiple property changes on a node to be processed as a
single entity?

Looking forward to seeing how this all materializes!

Rick



-----Original Message-----
From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org] On
Behalf Of Tobias Ivarsson
Sent: Wednesday, March 31, 2010 6:39 AM
To: Neo user discussions
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

_______________________________________________
Neo mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to