Currently the internal database consists of a an embedded orientdb instance. The benefit of defining an abstraction layer would be:
externalize the orientdb service so that it is not affected by opal's memory usage (vertical scalability) and it can be shared by several opal instances (horizontal scalability)
use a different document-oriented database (like mongodb)
make config flexible using a plugin discovered at runtime
Currently the internal database consists of a an embedded orientdb instance. The benefit of defining an abstraction layer would be: