# One-box stream processing with CSP

DevFeed: [One-box stream processing with CSP](<https://devfeed.tech/articles/one-box-stream-processing-with-csp-32160.md>)

Original publisher: [Read original article](<https://adambard.com/blog/stream-processing-core-async/>)

Published: 2018-02-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [streaming-data-processing](<https://devfeed.tech/topics/streaming-data-processing.md>), [Clojure](<https://devfeed.tech/topics/clojure.md>), [stream-processing](<https://devfeed.tech/topics/stream-processing.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>)

Tags: [clojure](<https://devfeed.tech/tags/clojure.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [core-async](<https://devfeed.tech/tags/core-async.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [distributed-computing](<https://devfeed.tech/tags/distributed-computing.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [flink](<https://devfeed.tech/tags/flink.md>), [spark](<https://devfeed.tech/tags/spark.md>), [stream](<https://devfeed.tech/tags/stream.md>), [stream-processing](<https://devfeed.tech/tags/stream-processing.md>)

## AI overview

This article presents a small-scale stream-processing architecture in Clojure using core.async and component libraries. It describes modular components connected by asynchronous queues and explains how stream-processing design principles can support reusable, loosely coupled systems without requiring a distributed stream processor.

## Source excerpt

If you're like me (that is, employed by an ad tech company), stream processing is usually associated with frameworks like Storm, Flink, Spark Streaming, and other such solutions. However, a lot of real-life software can be described as stream processing - data comes in one end, is transformed or aggregated, and goes somewhere else. Many of these workloads don't justify the overhead of a stream processor, but that doesn't mean they can't benefit from some of the lessons of stream processing systems.