> For the complete documentation index, see [llms.txt](https://xjonathanlei.gitbook.io/firehose/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://xjonathanlei.gitbook.io/firehose/architecture/components/reader.md).

# Reader

StreamingFast Firehose reader component

## Reader Component in Detail

The Reader component is responsible for extracting data from instrumented blockchain nodes.

The Reader component utilizes the StreamingFast [node-manager](https://github.com/streamingfast/node-manager) library to run a blockchain node instance as a sub-process. Alternatively, the Reader component can consume the `stdout` of the process where `reader-stdin` is implemented.

Once the process has been started, the Reader component:

* reads the data being generated by the node,
* forwards the data downstream to other connected components including the Relayer, Firehose gRPC Server, etc.
* flushes the data to Object Storage for durability, and for the Merger to pick up the data.

### Firehose Depends on the Reader

The data consumed by Firehose is provided by the Reader component.

{% hint style="success" %}
*Tip: The Reader component is the initial and deterministic data producer for Firehose and all of its components.*
{% endhint %}

The Blockchain node underlying and managed by the Reader can be considered simplistic. They don't have archiving capabilities or any additional features.

{% hint style="info" %}
**Note***: after Firehose has been instrumented on a node it will begin returning substantial amounts of data.*
{% endhint %}
