WIP feat(experimental): MultiShapeStream and TransactionalMultiShapeStream APIs #2356
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
WIP - Opening for visibility + discussion.
This adds two new APIs to the @electric-sql/experimental package:
MultiShapeStream
A multi-shape stream is a stream that can subscribe to multiple shapes. It ensures that all shapes will receive at least an
up-to-date
message from Electric within thecheckForUpdatesAfter
interval.The emitted messages have an additional
shape
prop that is the name of the shape provided in the shapes object when constructing theMultiShapeStream
.TransactionalMultiShapeStream
A transactional multi-shape stream is a multi-shape stream that emits the messages in transactional batches.
It uses the
lsn
metadata to infer transaction boundaries, and theop_position
metadata to sort the messages within a transaction.Note that you will only receive change massages on the main subscription (in transactional batches), and not any control massages.
To to: