Update: I've tried creating a class that implements both IRichBolt and IRichSpout — but Storm never calls "open" on it, and it's just treated like a Bolt.
From: Sam Mati <[email protected]<mailto:[email protected]>> Reply-To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Date: Friday, November 14, 2014 12:24 AM To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: Can a Bolt also be a Spout? If not, can a bolt ever get ack() notifications? I'd like to have "sub-topologies" within my topology. That is, a Bolt that also be a Spout. Or Spout that can also receive input via Execute(). Is this possible? For example, I'd like to send a tuple from Spout A, to Bolt B, to Bolt C. Bolt C should also be a spout — it can store the tuple from Bolt B and emit a new tuple to C[A] and C[B]. Once it's own DAG is complete (C[A], C[B], etc), it can proceed to ack/fail the original tuple so that Spout A gets a response. Spout A --> B --> Spout C --> D / \ C[A] C[B] Thanks, -Sam
