Hi, The software we having been developing is based on Esper, supporting hot-deployment of esper engine (including event types and EPL statements), and providing esper engine management . Recently we consider running it in clusters. Since Esper is not horizontally scalable, we use Storm as a stream framework and Esper as stream processors. We have built some topology based on tomdz's storm-epser API on github and things went fine. But for other functions of our software, like hot-deployment of esper engine and engine management, it seems hard to implement them in storm. Here are the details of our problems:
1. hot-deployment of esper engine. In storm, I think processing tasks of one deployed esper engine should be fulfilled by a topology. One way is to build a topology for every esper engine deployment. But how can I build topology dynamically? Will this be possible in near future? 2. esper engine management. Getting the states of esper engines in a standalone environment is easy by means of calling esper APIs, while in cluster, if I create one esper engine in every bolt, how am I supposed to get the state of esper engine in the bolt? One way is to send some GetStateRequest to spout, spout then forwards the request to some bolt (whose id can be specified in the request), and the bolt sends the state to, say ZeroQ, which can finally return to the request sender. Is this a good way? Any reply would be appreciated! Thank you very much! Best regards, Hao Yu Center for High-speed Railway Technology, Tsinghua University (CHRT) Addr: 1117 LiuQing Building, Tsinghua University, Beijing, P.R.CHINA, 100084 Fax: 86-10-62788330 Email:[email protected]
