Examining the preceding algorithm, there are a number of interesting design and architectural considerations, especially given the current state of Storm. The algorithm requires recursion. We also need a means of synchronously processing requests. Recursion within Storm is an evolving topic, and while Storm provides a means of interacting with topologies synchronously, when combined with a demand for recursion, this presents some unique and interesting challenges.
Originally, native Storm provided a mechanism to service asynchronous procedure calls. The feature is Distributed Remote Procedure Call (DRPC). DRPC allowed a client to make requests of a topology by submitting data directly to the topology. With DRPC, a simple RPC client acts as a spout.
With the advent of Trident, DRPC was deprecated in native Storm and is now officially supported only in Trident.
Although there has been some exploratory work into recursive/nonlinear DRPC...