Project Goliath came about primarilly around the need to enhance the current data service and data models to increase the value of data in metasploit to our end users.
This work is currently being done in 2 stages:
**_Stage 1_**
This is currently a work in progress (which is why Goliath is currently not fully functional).
The current data storage mechanism couples the metasploit core framework code to the current data storage technology. Coupling causes inflexibility which are reflected via the following problems:
* Changes to the current data model are complex
* The ability to support/use different data storage technologies is difficult
* Promotes a monolithic architecture where poor performance in any segment of the software affects the entire system (large network scans)
Our solution to this is a data service proxy. A data service proxy allows us to separate core Metasploit Framework code from the underlying data service technology. The `framework.db` reference to data services is no longer tied directly to the underlying data storage, but instead all calls are proxied to an underlying implementation.
Currently we plan to support the legacy data storage technology stack (RAILS/PostgreSQL) which we hope to eventually phase out. The new implementation will use a RESTful (https://en.wikipedia.org/wiki/Representational_state_transfer) approach whereby calls to `framework.db` can be proxied to a remote web service that supports the same data service API. We have built a web service that runs atop the current data storage service for the community.