torodb / stampede

The ToroDB solution to provide better analytics on top of MongoDB and make it easier to migrate from MongoDB to SQL
https://www.torodb.com/stampede/
GNU Affero General Public License v3.0
1.76k stars 118 forks source link

Several changes to improve the modularity of the architecture #136

Closed gortiz closed 7 years ago

gortiz commented 7 years ago

The use of Guice has been changed. Instead of a single huge injector build by module composition, there are now several bundles that has dependencies to other bundles. Each bundle is build using a configuration pojo that includes its dependencies and configuration properties/objects. Each bundle then build their own injector using its dependencies and then expose its external interface so others can use the objects it creates.

By doing that, each module explicity says on which modules it depends without the ability to inject objects from other modules. It also allow us to create several modules of the same type without breaking, which is specially important to be able to replicate from several shards.