Idempotent writes
A retry does not double a row.
Chain data in SQL
Postgres or ClickHouse, with the writes, the checkpoints and the reorganizations already handled.
StreamingFast
ecosystem
01 Chain data in SQL
A retry ran twice and a balance doubled, and you found out from a customer.
The chain reorganized and your table still holds the number that was true for ninety seconds.
The stream reconnected, and nobody can prove it resumed at the right block.
Getting data into a database is an afternoon. Keeping it correct through retries, reconnections and reorganizations is the job, and it has no end date. A hosted sink is that job, run for you: writes are idempotent by construction, progress is versioned by block, and a reorganization reverses what it has to and leaves the rest.
Read the guide01 specVersion: v0.1.0
02 package:
03 name: token_transfers
04 version: v0.1.0
05
06 modules:
07 - name: map_transfers
08 kind: map
09 inputs:
10 - source: sf.ethereum.type.v2.Block
11 output:
12 type: proto:transfers.TransfersA retry does not double a row.
A reorganization unwinds exactly what it should.
Two supported destinations, same contract.
Let it run for you, or run it yourself. The behaviour does not change.
You define the tables. Nothing is invented on your behalf.
02 Chain data in SQL
The tables, and the keys that make a write idempotent.
A form and a deploy button, or your own process.
Reorganizations arrive as signals, not as numbers that silently change.
03 Chain data in SQL
Chain data in SQL
Choose the mapping, preserve progress and operate ingestion with clear freshness and cost expectations.