// "followers", ":", "rowKey", "follower", true);
// cf = "tweeters", rowkey = tuple["url"]
TupleMapper<String, String, String> tweetersTupleMapper = new DefaultTupleMapper("stormks", "tweeters", "url");
// cf (url -> tweeters) -> emit(url, follower)
ColumnMapper<String, String, String> tweetersColumnsMapper = new ValuelessColumnsMapper("url", "tweeter", true);
CassandraLookupBolt<String, String, String> tweetersBolt = new CassandraLookupBolt<String, String, String>(configKey,
tweetersTupleMapper, tweetersColumnsMapper);
// cf = "followers", rowkey = tuple["tweeter"]
TupleMapper<String, String, String> followersTupleMapper = new DefaultTupleMapper("stormks", "followers", "tweeter");
// cf (tweeter -> followers) ==> emit(url, follower)
ValuelessColumnsMapper followersColumnsMapper = new ValuelessColumnsMapper("url", "follower", true);
CassandraLookupBolt<String, String, String> followersBolt = new CassandraLookupBolt<String, String, String>(configKey,
followersTupleMapper, followersColumnsMapper);
builder.addBolt(new InitBolt());
builder.addBolt(tweetersBolt).shuffleGrouping();