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 
                                          

Reply via email to