Skip to content

sui-indexer-alt-framework: add chain_id to CheckpointStreamingClient - #25905

Merged
evan-wall-mysten merged 1 commit into
mainfrom
streaming_client_chain_id
Mar 20, 2026
Merged

sui-indexer-alt-framework: add chain_id to CheckpointStreamingClient#25905
evan-wall-mysten merged 1 commit into
mainfrom
streaming_client_chain_id

Conversation

@evan-wall-mysten

@evan-wall-mysten evan-wall-mysten commented Mar 20, 2026

Copy link
Copy Markdown
Collaborator

Description

This continues the work started in #25895 by adding a chain_id response header that the CheckpointStreamingClient reads. The chain_id is plumbed through to the Processor alongside checkpoint.

The processor's Service currently ignores the chain_id.

This change depends on #25908.

Test plan

Updated existing unit tests to assert the chain_id is passed along with the checkpoint.


Release notes

Check each box that your changes affect. If none of the boxes relate to your changes, release notes aren't required.

For each box you select, include information after the relevant heading that describes the impact of your changes that a user might notice and any actions they must take to implement updates.

  • Protocol:
  • Nodes (Validators and Full nodes):
  • gRPC:
  • JSON-RPC:
  • GraphQL:
  • CLI:
  • Rust SDK:
  • Indexing Framework: Changed Processor's receiver to accept new CheckpointEnvelope type containing the chain_id.

@evan-wall-mysten
evan-wall-mysten requested a review from a team as a code owner March 20, 2026 02:56
@evan-wall-mysten
evan-wall-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 20, 2026 02:56 — with GitHub Actions Inactive
@vercel

vercel Bot commented Mar 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
sui-docs Ready Ready Preview, Comment Mar 20, 2026 6:45pm
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
multisig-toolkit Ignored Ignored Preview Mar 20, 2026 6:45pm
sui-kiosk Ignored Ignored Preview Mar 20, 2026 6:45pm

Request Review

@amnn amnn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good modulo minor comments -- remember to update the release notes!

Comment thread crates/sui-indexer-alt-framework/src/ingestion/streaming_client.rs Outdated
Comment thread crates/sui-indexer-alt-framework/src/ingestion/streaming_client.rs Outdated
@evan-wall-mysten

Copy link
Copy Markdown
Collaborator Author

Looks good modulo minor comments -- remember to update the release notes!

I'll update the release notes in the change that stores the chain_id since it doesn't have an effect until then.

@evan-wall-mysten
evan-wall-mysten force-pushed the streaming_client_chain_id branch from 7223a55 to ef24f28 Compare March 20, 2026 18:41
@evan-wall-mysten
evan-wall-mysten temporarily deployed to sui-typescript-aws-kms-test-env March 20, 2026 18:41 — with GitHub Actions Inactive
@evan-wall-mysten
evan-wall-mysten enabled auto-merge (squash) March 20, 2026 18:59
@evan-wall-mysten
evan-wall-mysten merged commit 5a43536 into main Mar 20, 2026
59 checks passed
@evan-wall-mysten
evan-wall-mysten deleted the streaming_client_chain_id branch March 20, 2026 19:02
@amnn

amnn commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

I'll update the release notes in the change that stores the chain_id since it doesn't have an effect until then.

This is not correct. The ingestion and streaming clients and services are part of the indexing framework's public API, i.e. they can be used as standalone components, so changes to their signatures are breaking changes for the indexing framework.

Update the release notes section on this PR to indicate that breaking change, and migration guidance, and coordinate with @jessiemongeon1 on review, as this PR has now landed without the necessary update to its description, so it is going to trigger notifications/workflows internally.

In future, consider any change to a pub type or function a potential breaking change. If in doubt, ask before landing, so that we can avoid the side channel to coordinate review on the release notes, thanks.

evan-wall-mysten added a commit that referenced this pull request Mar 26, 2026
)

## Description 

This PR is a follow up to #25895 and #25905 that 
1. stores the `chain_id` per pipeline in the watermark
2. compares the stored `chain_id` to the `chain_id` returned by the
streaming and ingestion clients
3. implements the `chain_id` storage for the Postgres and mock store
implementations (other impls return the passed in `chain_id` and are
no-ops)

## Test plan 

Adds new `test_chain_id` test cases.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
- [x] Indexing Framework: Add `Connection::init_chain_id` method to
store and retrieve `chain_id`.
jordanjennings-mysten pushed a commit that referenced this pull request Apr 16, 2026
…25905)

## Description 

This continues the work started in #25895 by adding a `chain_id`
response header that the `CheckpointStreamingClient` reads. The
`chain_id` is plumbed through to the `Processor` alongside `checkpoint`.

The `processor`'s `Service` currently ignores the `chain_id`.

This change depends on #25908.

## Test plan 

Updated existing unit tests to assert the `chain_id` is passed along
with the `checkpoint`.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
- [ ] Indexing Framework:
jordanjennings-mysten pushed a commit that referenced this pull request Apr 16, 2026
)

## Description 

This PR is a follow up to #25895 and #25905 that 
1. stores the `chain_id` per pipeline in the watermark
2. compares the stored `chain_id` to the `chain_id` returned by the
streaming and ingestion clients
3. implements the `chain_id` storage for the Postgres and mock store
implementations (other impls return the passed in `chain_id` and are
no-ops)

## Test plan 

Adds new `test_chain_id` test cases.

---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
- [x] Indexing Framework: Add `Connection::init_chain_id` method to
store and retrieve `chain_id`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants