README.md in rflow-1.0.1 vs README.md in rflow-1.1.0

- old
+ new

@@ -11,11 +11,11 @@ [Storm](http://storm.incubator.apache.org/), and Clojure's [core.async](http://clojure.github.io/core.async/) library. In short, components communicate with each other by sending/receiving messages via their output/input ports over connections. Ports are -"wired" together output->input with connections, and messages are +'wired' together output->input with connections, and messages are explicitly serialized before being sent over the connection. RFlow supports generalized connection types and message serialization, however only two are in current use, namely ZeroMQ connections and Avro serialization. @@ -56,11 +56,11 @@ communicates with the rest of the system through explicit message passing via input and output ports. * __Port__ - a named entity on each component that is responsible for receiving data (and input port) or sending data (and output port). - Ports can be "keyed" or "indexed" to allow better multiplexing of + Ports can be 'keyed' or 'indexed' to allow better multiplexing of messages out/in a single port, as well as allow a single port to be accessed by an array. * __Connection__ - a directed link between an output port and an input port. RFlow supports generalized connection types; however, only @@ -68,11 +68,11 @@ delivery are supported on a per-link basis. * __Message__ - a bit of serialized data that is sent out an output port and received on an input port. Due to the serialization, message types and schemas are explicitly defined. In a departure - from "pure" FBP, RFlow supports sending multiple message types via a + from 'pure' FBP, RFlow supports sending multiple message types via a single connection. * __Workflow__ - the common name for the digraph created when the components (nodes) are wired together via connections to their respective output/input ports. @@ -124,11 +124,11 @@ * `cleanup!` is the final call to each component, and allow the component to clean up any external resources that it might have outstanding, such as file handles or network sockets. -"Source" components will often do all of their work within the `run!` +'Source' components will often do all of their work within the `run!` method, and often gather message data from an external source, such as file, database, or network socket. The following component generates a set of integers between a configured start/finish, incrementing by a configured step: @@ -156,11 +156,11 @@ end end end ``` -"Middle" components receive messages on input port(s), perform a bit +'Middle' components receive messages on input port(s), perform a bit of computation, and then send a message out the output port(s). The following component accepts a Ruby expression string via its config, and then uses that as an expression to determine what port to send an incoming message: @@ -187,11 +187,11 @@ end end end ``` -"Sink" components accept messages on an input port and do not have an +'Sink' components accept messages on an input port and do not have an output port. They often operate on external sinks, such as writing messages to a file, database, or network socket. The following component writes the inspected message to a file (defined via the configuration): @@ -218,13 +218,13 @@ ## RFlow Messages RFlow messages are instances of [`RFlow::Message`](lib/rflow/message.rb), which are ultimately -serialized via an Avro [schema](schema/message.zvsc). +serialized via an Avro [schema](schema/message.avsc). -There are two parts of the message "envelope": a provenance and the -embedded data object "payload". +There are two parts of the message 'envelope': a provenance and the +embedded data object 'payload'. The `provenance` is a way for a component to annotate a message with a bit of data that should (by convention) be carried through the workflow with the message, as well as being copied to derived messages. For example, a TCP server component would spin up a TCP