Hi,

On Thu, Nov 12, 2009 at 10:17 AM, ekke <e...@ekkes-corner.org> wrote:
> since two weeks I'm following this user list and also read documentation
> at your web sites.
> many years ago I worked with ODBMS (FastObjects, Versant) and I like it
> to persist my structures as object graphs.
>
> in recent projects I'm using RDBMS (DB2) with EJB3 / JPA / Hibernate
>
> my projects are for small and medium-sized companies, but the business
> apps are complex and there are many
> use-cases where traversing a tree of nodes is the most important thing
> and I dont like all the mapping needed with
> hibernate
>
> now I found Neo4J and it seems to be a good solution, so I think I could
> give it a try.
>
> do you think I can use it for a normal enterprise business application,
> where the most time the user is
> navigating thru associations ?
>

Yes, sounds like Neo4j is a very good fit.

> I could imagine to to write (synchronize) all data important for BI to a
> RDBMS, but use Neo as the main DB for live data
>
> some questions:
> * exists something like optimistic locking or have I to implement this
> by myself
> * exists something like entity versioning (http://www.jboss.org/envers/)

By default read operations will not take any locks at all, writes will
take a write lock on the node/relationship. Entity versioning can be
implemented using a property on a node or relationship. We are
thinking about adding native support for versioning (removing write
locks) but that is not in development yet.

> * is reporting possible with Neo4J, perhaps using Eclipse BIRT with
> custom ODA extension
>
> my application is based on osgi (equinox) at server site and also for
> clients (eclipse rcp)
>
> whats the recommended way to connect clients with Neo4J ? direct access
> from the client
> or (what I would prefer) thru remote OSGI Services ? Do I run into
> similar things like
> Hibernate Lazy Access Exceptions ?
>

We are an embedded database so it is recommended (when not embedding
it in your application) to wrap it in a thin layer raising the
abstraction level from nodes/relationships/properties to
application/domain level before exposing it as a service.

You will not run into the Hibernate lazy access exceptions when using
Neo4j. Everything is lazy load so just pretend the entire graph is in
memory (no load/store pattern).

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

Reply via email to