-
Notifications
You must be signed in to change notification settings - Fork 49
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #567 from streamingfast/giu/updates
Implementing Docs Feedback
- Loading branch information
Showing
17 changed files
with
138 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,42 @@ | ||
Once you find a package that fits your needs, you can choose how you want to consume the data: | ||
Once you find a package that fits your needs, you can choose how you want to consume the data. Sinks are integrations that allow you to send the extracted data to different destinations, such as a SQL database, a file or a subgraph. | ||
|
||
{% hint style="info" %} | ||
**Note**: Some of the sinks are officially supported by StreamingFast (i.e. active support is provided), but other sinks are community-driven and support can't be guaranteed. | ||
{% endhint %} | ||
|
||
- [SQL Database](./sql/sql-sink.md): Send the data to a database. | ||
- [Subgraph](./subgraph/subgraph.md): Configure an API to meet your data needs and host it on The Graph Network. | ||
- [Direct Streaming](./stream/stream.md): Stream data directly from your application. | ||
- [Direct Streaming](./stream/stream.md): Stream data directly from your application. | ||
- [Community Sinks](new/how-to-guides/sinks/community/other-sinks): Explore quality community maintained sinks. | ||
|
||
{% hint style="success" %} | ||
**Deployable Service**: If you’d like your sink (e.g., SQL or PubSub) to be hosted for you, reach out to the StreamingFast team [here](mailto:[email protected]). | ||
{% endhint %} | ||
|
||
## Navigating Sink Repos | ||
|
||
### Official | ||
|
||
| Name | Support | Maintainer | Source Code | | ||
|-----------|---------|------------------|-------------| | ||
| SQL | O | StreamingFast |[substreams-sink-sql](https://github.com/streamingfast/substreams-sink-sql)| | ||
| Go SDK | O | StreamingFast |[substreams-sink](https://github.com/streamingfast/substreams-sink)| | ||
| Rust SDK | O | StreamingFast |[substreams-sink-rust](https://github.com/streamingfast/substreams-sink-rust)| | ||
| JS SDK | O | StreamingFast |[substreams-js](https://github.com/substreams-js/substreams-js)| | ||
| KV Store | O | StreamingFast |[substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv)| | ||
| Prometheus| O | Pinax |[substreams-sink-prometheus](https://github.com/pinax-network/substreams-sink-prometheus)| | ||
| Webhook | O | Pinax |[substreams-sink-webhook](https://github.com/pinax-network/substreams-sink-webhook)| | ||
| CSV | O | Pinax |[substreams-sink-csv](https://github.com/pinax-network/substreams-sink-csv)| | ||
| PubSub | O | StreamingFast |[substreams-sink-pubsub](https://github.com/streamingfast/substreams-sink-pubsub)| | ||
|
||
### Community | ||
|
||
| Name | Support | Maintainer | Source Code | | ||
|-----------|---------|------------------|-------------| | ||
| MongoDB | C | Community |[substreams-sink-mongodb](https://github.com/streamingfast/substreams-sink-mongodb)| | ||
| Files | C | Community |[substreams-sink-files](https://github.com/streamingfast/substreams-sink-files)| | ||
| KV Store | C | Community |[substreams-sink-kv](https://github.com/streamingfast/substreams-sink-kv)| | ||
| Prometheus| C | Community |[substreams-sink-Prometheus](https://github.com/pinax-network/substreams-sink-prometheus)| | ||
|
||
* O = Official Support (by one of the main Substreams providers) | ||
* C = Community Support |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,17 @@ | ||
It is possible to the send data the of a Substreams to a subgraph, thus creating a Substreams-powered Subgraph. | ||
|
||
There are two ways of making Substreams interact with subgraphs: | ||
There are two ways of making Substreams sink to a subgraph: | ||
- Create a special [graph_out module](./graph-out.md) that emits an [EntityChanges](https://github.com/streamingfast/substreams-sink-entity-changes/blob/develop/proto/sf/substreams/sink/entity/v1/entity.proto#L11) Protobuf. | ||
The subgraph will read the `EntityChanges` object and consume the data. | ||
- Use the [**Substreams triggers**](./triggers.md) to consume Substreams Protobuf directly inside your subgraph. | ||
|
||
## What Option To Use | ||
Both are valid options depending on the use case: | ||
- Use the `graph_out` module is if your logic is entirely in the Substreams Rust code. You will create the subgraph entities in the Substreams and the subgraph will only read them. By putting your logic in the Substreams, you will **benefit from parallelism and you will be able to handle a cursor to track the progress of the data**. Read more about it in the [Never Miss Data](../../../references/reliability-guarantees.md) section. | ||
It is really a matter of where you put your logic, in the subgraph or the Substreams. | ||
|
||
- Use the **Substreams triggers** if you want to use Substreams as an extraction layer for the data, but the logic of your application will be in the subgraph AssemblyScript code. By putting all your logic in the subgraph, you will deal with an _easier_ programming language (AssemblyScript). | ||
- [Substreams Triggers](./triggers.md): Consume from any Substreams module by importing the Protobuf model through a subgraph handler and write all your transformations ussing AssemblyScript. This method creates the subgraph entities directly in the subgraph. | ||
- [Substreams Graph-Out](./graph-out.md): By writing more of the logic into Substreams, you can consume the module's output directly into `graph-node`. You will create the subgraph entities in the Substreams and the subgraph will read them. | ||
|
||
Having more of your logic in Substreams benefits from a parallelized model and a cursor to [never miss data](../../../references/reliability-guarantees.md), whereas triggers will be linearly consumed in `graph-node`. | ||
|
||
|
||
<figure><img src="../../../.gitbook/assets/consume/service-subgraph.png" width="100%" /></figure> |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.