PubSub changelog target
This release adds a Google PubSub target that turns a pipe into a durable, sequenced changelog feed for downstream consumers, makes finalized-only targets pin the finalized stream so they can never hold back an uncommitted tail, and fixes fork detection when the portal answers 409 without a fork context.
Highlights
- New target: Google PubSub (
@subsquid/pipes/targets/pubsub) —pubsubTargetpublishes the decoded stream to PubSub topics as a sequenced changelog. Delivery is durable: a SQLite-backed outbox survives crashes and resumes without gaps or duplicates, and chain reorgs are compensated with rollback messages instead of silent rewrites. Topic routing, delivery profiles, optional topic validation, andwindowTopicfor windowed views are included; target errors carry the newE24xxband. See the example.
Core
- Finalized-only targets now pin the finalized stream. Parquet and the memory target declare
requiresFinalizedStream, and the source reads/finalized-streamregardless of portal options (warning when it overrides them). The finalization buffer is gone — every delivered block is final, so a bounded range ending above the finalized head can no longer leave an uncommitted tail behind a successfully resolvedpipeTo(), and the Parquet cursor no longer lags when finality advances inside one response.
Portal client
- A 409 without
previousBlocksis no longer misread as a fork. The portal may answer 409 with the error envelope alone; the client used to crash inside the fork handler and bury the original response. The 409 now reaches the caller intact.
Full Changelog: pipes-v1.0.0-beta.1...pipes-v1.0.0-beta.2