We currently have 1 project in GIT containing multiple topologies. With this 
model, I use 1 compiled artifact containing several “topology” classes, each 
with a main method to configure, build, and submit the topology. Some of these 
topologies share some common components (bolt classes, util classes, etc…).

I do not necessarily need to deploy the newest version of each topology ever 
time we release code. Here are couple of options I have thought of:

  *   Break up project into a parent module, keeping 1 GIT repo, with a child 
module for common components and child for each topology.
  *   Break the common code into a GIT repo, then each topology into a GIT repo 
(don’t really wanna do this one at all).
  *   Have the gradle build create a JAR per topology, using 
exclusion/inclusion in gradle a task.

I see PROs and CONs to each approach. I am curious as to how others are 
maintaining this model. Do you have a separate compiled artifact for each 
topology? Do you use a similar approach to ours?

Thanks in advance…

Reply via email to