Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Proof of Concept:

Introduce Dagger Inversion of Control to implement a vertical slice of functionality. We need to find a feature that touches on a few cross-cutting concerns, but just one Bounded Context.

Nominees:

  1. MetricsSystem - Each time we need to expose a metric, we need to get this MetricsSystem from upper Layers and transfer it from constructor to constructor. 
  2. Configuration management - 
  3. Jumpdest caching. Only relevant to the EVM, but requires caching, configuration, Observability, and hashing. Plan would be to provide each of these as a dependency.
  4. PoA consensus mechanisms. Impact TBD.
  5. Transaction pool. Impact TBD.
  6. Merge Context. What if the Merge Coordinator and related classes could be a dagger module?
  7. Protocol Schedule. Impact TBD.

Once the question of "will daggers dependency injection make for cleaner composition of modules into an application" is answered, we can then start to incrementally adopt it within each bounded context, and across the cross-cutting concerns.

...