Derby is absolutely the best when it comes to needing a small, embeddable RDBMS in your applications. Certain jobs, like Risk Modeling, are perfect for a database that is small enough to fit into memory with no trouble then store data from various sources, and then allow a user to access those data sets quickly.
Its very well suited for storing graph types relationship information, such as a group of people and their relationships. Data modeling this sort of information in a traditional SQL database is a pain and inefficient. Using Neo4J allows for efficient modeling of data while providing rich querying capabilities using Cypher. Its also a great fit for any programming language because of its support for REST API. It's less appropriate for any other data structure other than Graph data. So as with any DB, evaluate the data structure and query and if the querying revolves around relationships, then Neo4J is a fit. If there is more need for looking up individual nodes and their associated information, Neo4J might not be the most efficient solution in the market.
Not as well positioned in the market as the "big dogs" (Oracle, MSSQL)
Been around awhile, and not a lot of exposure. This I believe is primarily due to it's relation to the Apache Project (which is not bad, but they don't force big, lumbering corporate volume licensing on you), and thus people are a bit gun-shy about NOT throwing money at something
Java is still "slow" compared to C/C++, thus making Derby a bit slow too
It would be nice to have some concept of namespaces, or some way of roughly making a single instance multi-tenant. It'd be nice to make sandboxing easier.
SQLite is another open-source zero-cost file-based SQL-capable database solution and is a good alternative to Apache Derby, especially for non-Java-based solutions. We chose Apache Derby as it is Java-based, and so is the solution we embedded it in. However, SQLite has a similar feature set and is widely used in the industry to serve the same purposes for native solutions such as C or C++-based products.
I have not used anything like Neo4J because of how unique it is in the work that it allows me to do. I am not aware of any other graph database platforms and it might be because it is a growing area (especially in the world of pharmaceuticals). I would be open to trying other softwares though.
For experimentation purposes, it had a positive impact on my company. It was very natural to work with Neo4j and so intuitive to visualize the data.
Neo4j community edition is free, which is what we experimented on. So there was no investment up front apart from employee's time. But this quickly gave results and it was time well spent.
Neo4j is a cool but very new technology. It was hard to have people onboard, especially some of the leadership and relational folks.