Skip to content

[Question] Drop Dagger DI? #294

@andrewazores

Description

@andrewazores

Currently we use Dagger for dependency injection in the Agent and in the main Cryostat 2.x line. Other Cryostat components - cryostat-reports and jfr-datasource - are Quarkus-based and therefore use Quarkus ArC.

Since Cryostat 3 is also Quarkus-based, the Agent will be our only consumer of Dagger. This has some downstream maintenance burden, so we should consider alternatives that have less maintenance burden.

  1. Try to use Quarkus ArC as well. It's not clear to me at this point how easy this is to actually use without being built with Quarkus to begin with.
  2. Find another DI library/framework similar to Dagger, but with a simpler build toolchain, fewer dependencies, etc. One option that came up in a cursory search was https://github.com/avaje/avaje-inject . Ideally this would be some other compile time, code generation based and lightweight system, not a heavyweight reflection system, to keep Agent resource footprint small and startup fast.

Metadata

Metadata

Assignees

No one assigned

    Labels

    choreRefactor, rename, cleanup, etc.questionFurther information is requested

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions