Skip to content

Commit cfb9573

Browse files
committedJan 22, 2025·
get rid of trailing '#' s in .md headers
1 parent f2f1a0b commit cfb9573

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed
 

‎doc/flow.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
# core.async.flow #
2-
## Rationale ##
1+
# core.async.flow
2+
## Rationale
33

44
The [rationale](https://clojure.org/news/2013/06/28/clojure-clore-async-channels) for **core.async** says "There comes a time in all good programs when components or subsystems must stop communicating directly with one another." And core.async provides fundamental tools (channels) for doing that.
55

66
But using core.async well, e.g. keeping your I/O out of your computational logic, requires discipline and architectural savvy, and to do so consistently throughout an application or organization, conventions. Given channels, many architectural decisions remain regarding thread execution, backpressure, error handling etc. And often the topology of your network of communicating processes *emerges* out of the flow of control of your program as various pieces of code create threads and wire channels together, interleaved with computation, making it difficult to see the topology or administer it in one place.
77

88
The fundamental objective of __core.async.flow__ is to enable a strict separation of your application logic from its topology, execution, communication, lifecycle, monitoring and error handling, all of which are provided by and centralized in, c.a.flow, yielding more consistent, robust, testable, observable and operable systems.
99

10-
## Overview ##
10+
## Overview
1111

1212
__core.async.flow__ provides *concrete* implementations of two more abstractions - the '__process__' - a thread of activity, and the '__flow__' - a directed graph of processes communicating via channels. A single data structure describes your flow topology, and has all of the settings for threads, channels etc. A process accepts data from and provides data to channels. The process implementation in c.a.flow handles all channel I/O, thread lifecycle and coordination with the flow graph.
1313

0 commit comments

Comments
 (0)
Please sign in to comment.