Hi everyone,

 

I’m trying to develop my new topologies using a proper design pattern,  to achieve :

-          Reusability of class

-          Unit testing / at least functional

o   Be able to mock database interaction through interfaces

 

 

I worked a lot with PHP & Symfony which is a great framework to achieve those goals using dependency injection pattern

 

I want to apply it to Storm topology development, but here is my problem :

 

How can I pass dependency in constructor (e.g Cassandra provider, or id resolver, or even object hydrator), the bolt are instantiated when calling “prepare” method

If I’m using a DI framework (like google Guice), how can I Mixed it with storm topology builder ?

 

One idea :

I think I can pass factories to my constructor and instantiate object in prepare method of my bolt

But I’m not sure if it a good way to do it..

 

Did  anybody ever experience it ?

Does anyone have some best practices to develop topologies ? (regarding code engineering and organization)

 

Thanks in advance,

Regards

Bastien