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