hello
i just started using storm today .. and i have a very newbie question to make
sure that i am using storm correctly...
i set up s simple local cluster by following the tutorial.. and its working
fine.. but i have a question regarding best practice... basically.. i want to
know if my spout and bolt code is following best pratice.. the pseudo code is
below... i have a spout the listens for messages on a tibco ems queue, and then
does a simple transformation.. and then writes the data to cassandra
class EMSSpout extends BaseRichSpout{
public void nextTuple() {
String word = TibcoEMSQueueListener.receiveMessage();
_collector.emit(new Values(word));
}
}
class TransformBolt extends BaseRichBolt {
public void execute(Tuple tuple) {
String newTuple = transformTuple(tuple);
_collector.emit(tuple, new Values(newTuple.getString(0)));
_collector.ack(tuple);
}
}
class WriteToCassandraBolt extends BaseRichBolt {
public void execute(Tuple tuple) {
DataStaxCassandraDriver.insert(tuple.getString(0));
}
}
my newbie question is.. is it correct to make IO calls (i.e. JMS and JDBC) from
within the "Spout.nextTuple" and "Bolt.execute" methods... or is there a better
design practice for doing this ?
sorry in advance if this is a stupid question :)
there a better design practice for doing this