Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interfaces/base classes and dependency injection #2556

Open
usingtechnology opened this issue Oct 18, 2023 · 0 comments
Open

Interfaces/base classes and dependency injection #2556

usingtechnology opened this issue Oct 18, 2023 · 0 comments

Comments

@usingtechnology
Copy link
Contributor

With the evolution of aries-acapy-plugins, I think it is time to start defining/implementing base classes so we can break up dependencies and allow new implementations for plugin developers.

The anoncreds-rs work has started in this direction and I believe there are many more opportunities to decouple the code.

One example is multitenancy... when I was working on traction plugins, I had difficulty simply replacing the implementation. There were direct dependencies on the base class. Also, while I was doing old school debugging to figure out how/where to make my workarounds I noticed that the dependency injection mechanism and profiles seemed to be called a lot! It is very quick, but in a single request thread the profile was copied hundreds of times. It feels like there may be a better way to build out the necessary context.

Hopefully there is a way we can stage this out, something like:

  • define Base classes and define providers for base classes (maybe not necessary for all cases?)
  • ensure providers are used, no direct dependency on base class
  • refine the dependency injection and profile framework
@usingtechnology usingtechnology added the Discuss Issues to be raised for discussion at an ACA-Pug Meeting label Oct 18, 2023
@swcurran swcurran removed the Discuss Issues to be raised for discussion at an ACA-Pug Meeting label Jan 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants