SharpStorm Implementando Storm en C# (1) Proyecto Inicial

En los dos últimos años estuve explorando las ideas de Storm (ver, implementándo alguna topología local en Node.js. Llegó la hora de practicar más C# y TDD (Test-Driven Development), con:

El estado inicial del proyecto:

La idea es implementar bolt, spout y un builder de topologies. Leo en

There are just three abstractions in Storm: spouts, bolts, and topologies. A spout is a source of streams in a computation. Typically a spout reads from a queueing broker such as Kestrel, RabbitMQ, or Kafka, but a spout can also generate its own stream or read from somewhere like the Twitter streaming API. Spout implementations already exist for most queueing systems.

A bolt processes any number of input streams and produces any number of new output streams. Most of the logic of a computation goes into bolts, such as functions, filters, streaming joins, streaming aggregations, talking to databases, and so on.

A topology is a network of spouts and bolts, with each edge in the network representing a bolt subscribing to the output stream of some other spout or bolt. A topology is an arbitrarily complex multi-stage stream computation. Topologies run indefinitely when deployed.

Como ven, en el proyecto por ahora están definidas las interfaces que espero por ahora tengan bolts y spouts, y un topology builder para armar una topología. Por ahora, quiero una implementación local (sin procesamiento distribuido). Luego, espero implementar el algoritmo de ACK que tiene Storm original, que permite saber cuándo un mensaje entrante quedó completamente procesado (incluso los procesos de los mensajes que produjo en el medio del proceso).

Próximos temas: revisar ISpout, IBolt, y como se arma una topología.

Nos leemos!

Angel “Java” Lopez

This entry was posted in 1389, 15035, 18479, 18480, 5374. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>