Apache Derby is an excellent Java-based open source zero cost embeddable file-based relational database
Use Cases and Deployment Scope
We use Apache Derby to provide a lightweight file-based database to store configuration settings common to all server nodes in our webMethods Integration Server cluster. We also store data that we want to persistently cache across reboots of the server cluster in our Apache Derby database files. Apache Derby means we do not need separate database server infrastructure to provide these features and can just use the Apache Derby embedded library in our existing Java Virtual Machine processes but still have access to an SQL-capable database. This approach simplifies our infrastructure architecture and hence support and TCO costs.
Pros
- Embedded SQL-capable database client and server
- Good performance for a file-based database
- Zero cost open source solution
Cons
- Not suitable as a replacement for a highly-available horizontally-scalable database
- Only suitable for use by Java based projects as it is a Java based solution
- Performance characteristics not suitable for very large data sets
Likelihood to Recommend
If you need a SQL-capable database-like solution that is file-based and embeddable in your existing Java Virtual Machine processes, Apache Derby is an open-source, zero cost, robust and performant option. You can use it to store structured relational data but in small files that can be deployed right alongside with your solution, such as storing a set of relational master data or configuration settings inside your binary package that is deployed/installed on servers or client machines.
