File tree

3 files changed

+2
-2
lines changed

3 files changed

+2
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ All you need to do in your application is:
1818

1919
2. Define a flow by creating a data structure that enumerates the processes and the connections between their inputs and outputs, as well as various configuration settings for both.
2020

21-
![core.async.flow concerns](https://.com/clojure/core.async/blob/master/doc/img/flow-concerns.png?raw=true)
21+
<a href="https://.com/clojure/core.async/blob/master/doc/img/flow-concerns.png?raw=true"><img src="https://.com/clojure/core.async/blob/master/doc/img/flow-concerns.png?raw=true" alt="core.async.flow concerns" width="700"/></a>
2222

2323
With these application inputs, c.a.flow does the rest. It inquires of the processes what channels they require, creates those channels, then instantiates the processes making all of the channel connections between them. The processes in turn start threads (in fully user-configurable thread pools), await inputs, monitor the admin control channel, and when inputs arrive make data->data calls to your application logic, taking the return from that and sending it to the designated output channels. The processes follow a protocol used by the flow to do lifecycle management and error handling.
2424

Loading
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ <h2><a href="#overview" id="overview"></a>Overview</h2>
1616
<p>Define a flow by creating a data structure that enumerates the processes and the connections between their inputs and outputs, as well as various configuration settings for both.</p>
1717
</li>
1818
</ol>
19-
<p><img src="https://.com/clojure/core.async/blob/master/doc/img/flow-concerns.png?raw=true" alt="core.async.flow concerns" /></p>
19+
<p><a href="https://.com/clojure/core.async/blob/master/doc/img/flow-concerns.png?raw=true"><img src="https://.com/clojure/core.async/blob/master/doc/img/flow-concerns.png?raw=true" alt="core.async.flow concerns" width="700" /></a></p>
2020
<p>With these application inputs, c.a.flow does the rest. It inquires of the processes what channels they require, creates those channels, then instantiates the processes making all of the channel connections between them. The processes in turn start threads (in fully user-configurable thread pools), await inputs, monitor the admin control channel, and when inputs arrive make data-&gt;data calls to your application logic, taking the return from that and sending it to the designated output channels. The processes follow a protocol used by the flow to do lifecycle management and error handling.</p>
2121
<p>Once you’ve created a flow, the API provides functions to start/stop(shutdown) the flow, and to pause/resume both the flow and individual processes, to ping processes to get their state and that of their connected channels, to inject data into any point in the graph etc. The flow provides channels containing the ordinary monitoring/reporting stream and, separately, the error stream.</p>
2222
<p>The library provides many more details and features, including the ability to create, via ordinary functions, processes that act as <strong>sources</strong> (of data from outside the flow) or <strong>sinks</strong> (to recipients outside the flow) so you can situate your flow in a broader context while still coordinating resource management with the flow lifecycle.</p>

0 commit comments

Comments
 (0)