DependencyTrack / hyades

Incubating project for decoupling responsibilities from Dependency-Track's monolithic API server into separate, scalable services.
https://dependencytrack.github.io/hyades/latest
Apache License 2.0
59 stars 18 forks source link

Investigate feasibility of creating a Quarkus extension for DataNucleus #1231

Closed nscuro closed 2 weeks ago

nscuro commented 5 months ago

Current Behavior

Having to deal with multiple tech stacks (Alpine for API server, Quarkus for all other services) poses some challenges. It would be great if we could eventually converge them all to at least use the same framework.

Having all of the services use the same tech stack could potentially enable us to structure the project as modular monolith, such that users can decide if they prefer to deploy a single application, or multiple.

The API server largely uses standard Java EE concepts and as such would be relatively easy to port to Quarkus. The only outlier being the persistence framework, DataNucleus. There is no Quarkus extension for it (https://github.com/quarkusio/quarkus/issues/1908). However, it might be feasible to create one.

Proposed Behavior

Investigate how feasible it is to create a Quarkus extension for DataNucleus: https://quarkus.io/guides/writing-extensions

Checklist

nscuro commented 5 months ago

An alternative approach would be to migrate the persistence code to Hibernate instead. Looking at how much code is involved in the hibernate-orm extension, I'm not sure doing the same for DataNucleus is something we can realistically do and maintain on our own.