Skip to content

Conversation

lutter
Copy link
Collaborator

@lutter lutter commented Sep 17, 2025

The current code in SubgraphAssignmentProvider.start fetched the manifest from IPFS before starting a subgraph. But the code calling start, ultimately SubgraphRegistrar.start_assigned_subgraphs waited for all subgraphs to start successfully before processing assignment events.

That could lead to a situation where a slow IPFS server, even if it was slow for just one subgraph, could keep a node from processing assignment events.

With these changes, interacting with IPFS is deferred to the future that is spawned for running the subgraph so that slow IPFS can slow how long it takes for a subgraph to start, but not the system overall.

The current code in `SubgraphAssignmentProvider.start` fetched the manifest
from IPFS before starting a subgraph. But the code calling `start`,
ultimately `SubgraphRegistrar.start_assigned_subgraphs` waited for all
subgraphs to start successfully before processing assignment events.

That could lead to a situation where a slow IPFS server, even if it was
slow for just one subgraph, could keep a node from processing assignment
events.

With these changes, interacting with IPFS is deferred to the future that is
spawned for running the subgraph so that slow IPFS can slow how long it
takes for a subgraph to start, but not the system overall.
Copy link
Contributor

@fordN fordN left a comment

Choose a reason for hiding this comment

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

LGTM 👍

@lutter lutter merged commit 0271efc into master Sep 18, 2025
6 checks passed
@lutter lutter deleted the lutter/assignments branch September 18, 2025 16:46
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.

3 participants