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
Most Important Features
- Zero cost
- Java based
- Embeddable SQL-capable file-based database
Return on Investment
- Reduced our total cost of ownership of our Java solution, as we do not need separate database infrastructure for our relational data needs
- Zero up front costs to try
- Support services required are reduced by removing the need for specialist skills in a separate database product
Alternatives Considered
SQLite
Other Software Used
SQLite, Microsoft SQL Server, GitHub, Sublime Text, webMethods Trading Network, webMethods.io Integration (webMethods Integration Cloud), VMware Workstation Player (formerly VMware Player), IntelliJ IDEA, Gradle, Apache Maven, Jira Software, Atlassian Confluence

