Does Bitwarden's architecture use SharedKernel and/or CompositionRoot?

Recently I was studying the Bitwarden code base and the dependencies between the projects. Notably, I’ve got that there was the following dependency structure as in the image below:

Soon, some questions arose about the SharedWeb project.

This project concentrates all the dependency injection part of the projects: Core, Infrastructure.Dapper and Infrastructure.EntityFramework.


  • Is it considered a SharedKernel, if we are talking about Domain-Driven Design? And if it is SharedKernel, should it depend on Core?
  • Is it a CompositionRoot?
  • Is it considered both SharedKernel and CompositionRoot?