Didn't find what you were looking for?

Email questions or documentation suggestions to info@projectreshare.org.

DCB-ADR-0001 Discovery Prototype Frameworks

15th October 2022

DCB Hub Discovery Prototype - Frameworks and Architectural Basis

Context:

In order to make progress on the requirements for MOBIUS the project team is undertaking a discovery phase in which we seek to validate assumptions and proposals by building proof-of-concept components. In order to do that a number of baseline decisions need to be taken, this ADR records those initial POC concerns.

Decision:

The Prototype team will use Micronaut as a delivery framework. The team is well-versed in groovy/grails as a rapid delivery framework. The wider OKAPI ecosystem prefers pure Java. Mincronaut is the logical development of the grails framework and we expect it to provide the same rapid development benefits we see from groovy/grails. An added advantage is the transition back to pure java (But with java 17 syntax, which mitigates the need for much of the groovy syntactic sugar). This approach also enables us to take advantage of graalvm and native compilation, although it does so at the expense of the reflection-heavy spring framework, replacing it instead with an annotation-driven dependency injection framework. Given the need for raw performance, this is also seen as an advantage and worth exploring in the POC / discovery phase.

The team will use OpenAPI Generation from the project code to generate API documentation - it is important that this is enabled and maintained from commit#0.

Status:

Current/Done

Consequences:

The team is losing some flexibility with the loss of the groovy language but gaining significantly in runtime and startup performance. This decision brings us closer to the defacto standards in use by a large portion of the OKAPI community but enables us to take advantage of state-of-the-art developments in framework and runtime JVM performance.

Operated as a Community Resource by the Open Library Foundation